草庐IT

进程注入

全部标签

c# - Dapper with .NET Core - 注入(inject)的 SqlConnection 生命周期/范围

我正在使用.NETCore依赖注入(inject)在应用程序启动期间实例化一个SqlConnection对象,然后我计划将其注入(inject)到我的存储库中。Dapper将使用此SqlConnection从我的存储库实现中的数据库读取/写入数据。我将对Dapper使用async调用。问题是:我应该将SqlConnection作为transient注入(inject)还是作为单例注入(inject)?考虑到我想使用async这一事实,我的想法是使用transient,除非Dapper在内部实现了一些隔离容器,并且我的单例范围仍将包含在Dapper内部使用的任何范围内。在使用Dapper

c# - 具有进程内托管的 Dotnet Core 多个启动类

我有一个dotnet核心v.2.1应用程序,它利用“startup-class-by-environment-name-convention”为不同的环境使用不同的Startup类,例如开发,分期和生产。Program.Main.CreateWebHost方法看起来与此类似:publicstaticIWebHostBuilderCreateWebHostBuilder(string[]args){varstartupAssembly=Assembly.GetExecutingAssembly();varwebHostBuilder=WebHost.CreateDefaultBuilde

c# - .NET 服务到 Linux 守护进程

我正在使用.NET3.5编写可移植服务/守护进程,我的Windows服务正在运行,但我想知道单端口...如果我理解正确的话,Mono-service就是我正在寻找的。这究竟是如何工作的呢?我假设我在整个服务过程中都需要单声道兼容代码,对吗?例如,我正在使用SQLite。为了将其与单声道一起使用,我应该重构我的代码以使用单声道namespace等,例如Mono.Data.SQLite,这是否正确?我还可以使用Settings.settings吗?另外,我听说守护进程没有实现onStart/Stop方法,所以我需要更改我的代码以在mono/linux下运行吗?即在我的代码中使用这些方法是否

c# - 带有其他参数的Unity构造函数注入(inject)

我有一个类,其构造函数如下所示:publicBatchService(IRepositoryrepository,ILoggerlogger,stringuser)在我的DIBootstrap类中,我有以下RegisterType命令:.RegisterType(newInjectionConstructor(newResolvedParameter("SomeRepository"),newResolvedParameter("DatabaseLogger")))在我的客户端代码中,我想实例化BatchService如下:BatchServicebatchService=DICont

C#类库项目依赖注入(inject)bootstrap

我最近使用依赖注入(inject)模式和Autofac作为IoC容器。通常,我会在核心应用程序(Winform、WCF、WPF等)中使用它。目前我正在学习创建一个类库项目作为我的同行开发人员的框架,我倾向于坚持使用DI模式,因为它允许我在进行时进行单元测试。如何在没有入口点的类库项目中配置IoC容器?我应该做类似的东西吗:publicstaticvoidConfigureLibrary(){//..Dobootstrapinghere}让核心应用程序在核心应用程序启动时调用它?Patterns&PracticesEnterpriseLibrary或Spring.Net等库是如何配置的?

c# - 如何在没有 "process has exited"异常的情况下终止进程?

我使用Process.Kill()来终止进程。像这样:if(!process.WaitForExit(5000)){process.Kill();}有时进程会在两行之间退出,所以控制会进入if然后Kill会产生异常:System.InvalidOperationExceptionCannotprocessrequestbecausetheprocess(ProcessIdHere)hasexited.atSystem.Diagnostics.Process.GetProcessHandle(Int32access,BooleanthrowIfExited)atSystem.Diagno

c# - 基 Controller 类的属性注入(inject)

我正在尝试在派生self的BaseController类的任何Controller上自动设置一个属性。这是我的Application_Start方法中的代码。UnitOfWork属性在我尝试访问它时始终为null。varbuilder=newContainerBuilder();builder.RegisterControllers(typeof(MvcApplication).Assembly);builder.RegisterType().As();builder.RegisterType().As();builder.RegisterType().OnActivated(c=>c

C# = 为什么 Excel 进程没有结束?

我有以下代码:privateboolIsMousetrapFile(stringpath){logger.Log(validateFileMessage+path);Excel.ApplicationxlApp=newMicrosoft.Office.Interop.Excel.Application();Excel.Workbooksworkbooks=xlApp.Workbooks;Excel.WorkbookxlWorkBook=workbooks.Open(path,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type

c# - CaSTLe Windsor - 如何在构造函数注入(inject)中映射命名实例

也许这很容易,但是在网上搜索已经让我头疼了问题是:interfaceIValidator{voidValidate(objectobj);}publicclassValidatorA:IValidator{publicvoidValidate(objectobj){}}publicclassValidatorB:IValidator{publicvoidValidate(objectobj){}}interfaceIClassA{}interfaceIClassB{}publicclassMyBaseClass{protectedIValidatorvalidator;publicvo

c# - lock() 语句会阻塞进程/应用程序域中的所有线程吗?

也许这个问题听起来很愚蠢,但我不明白“关于线程和锁定的一些事情,我想得到确认(here'swhyIask)”。因此,如果我有10台服务器并且同时有10个请求到达每个服务器,那么整个服务器场就有100个请求。如果没有锁定,那就是对数据库的100个请求。如果我这样做:privatestaticreadonlyobjectmyLockHolder=newobject();if(Cache[key]==null){lock(myLockHolder){if(Cache[key]==null){Cache[key]=LengthyDatabaseCall();}}}我将执行多少数据库请求?10?