Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 添加到工厂的简单喷油器参数_C#_Asp.net_Dependency Injection_Inversion Of Control - Fatal编程技术网

C# 添加到工厂的简单喷油器参数

C# 添加到工厂的简单喷油器参数,c#,asp.net,dependency-injection,inversion-of-control,C#,Asp.net,Dependency Injection,Inversion Of Control,为了简洁起见,我将使用一些简短的通用命名约定。如果我有: public class Factory : IFactory { private readonly string dbConnection; public Factory(string dbConnection) { this.dbConnection= dbConnection; } public IDataContext Create() => new D

为了简洁起见,我将使用一些简短的通用命名约定。如果我有:

public class Factory : IFactory
{
     private readonly string dbConnection;
     public Factory(string dbConnection)
     {
          this.dbConnection= dbConnection;
     }

     public IDataContext Create() => new DataContext(dbConnection);
}
Factory
类有一个由构造函数设置的字段。简单喷油器如何支持该参数的传递?如果您实施:

public class Service
{
     private IFactory Factory { get; }
     public Service(IFactory factory)
     {
         Factory = factory;
     }

     public void Save()
     {
          using(var context = Factory.Create())
              context.Insert(...);
     }
}
在初始化或实例化参数时,该参数从未实际传递给或通过
工厂
。注册依赖项时,看起来不可能:

ContainerFactory.Register<IFactory, Factory>(Lifestyle.Transient);
ContainerFactory.Register(lifesture.Transient);
我正在研究
IEventHandler
接口,它是简单注入器的一部分,看起来它可以解决这个问题,但在这个实例中,您应该如何传递参数?

container.RegisterSingleton(新工厂(“constr”);
container.RegisterSingleton<IFactory>(new Factory("constr"));
集装箱。登记单(新工厂(“施工”);

我来看看。我来看看。