Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.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# Castle Windsor寄存器及其在构造函数上传递的实现_C#_.net_Castle Windsor_Castle - Fatal编程技术网

C# Castle Windsor寄存器及其在构造函数上传递的实现

C# Castle Windsor寄存器及其在构造函数上传递的实现,c#,.net,castle-windsor,castle,C#,.net,Castle Windsor,Castle,在Castle Windsor中,我希望将特定的具体实现传递到容器注册类的构造函数中。类似这样(我知道最后的语法是非法的;-): var myConfig=new myConfig(); 容器寄存器(组件 .对于() .由()实施 .参数(myConfig); 创建任何连接器时,是否都可以传入myConfig?这可能吗 (连接器有一个将MyConfig作为参数的构造函数)是,您可以这样做: container.Register(Component .For<IConnector

在Castle Windsor中,我希望将特定的具体实现传递到容器注册类的构造函数中。类似这样(我知道最后的语法是非法的;-):

var myConfig=new myConfig();
容器寄存器(组件
.对于()
.由()实施
.参数(myConfig);
创建任何连接器时,是否都可以传入myConfig?这可能吗

(连接器有一个将MyConfig作为参数的构造函数)

是,您可以这样做:

   container.Register(Component
  .For<IConnector>()
  .ImplementedBy<Connector>()
  .ServiceOverrides(
   ServiceOverride
  .ForKey("myConfig")
  .Eq("NameYouGaveMyConfigWhenRegisteringInCastle"));
container.Register(组件
.对于()
.由()实施
.ServiceOverrides(
服务覆盖
.ForKey(“myConfig”)
.Eq(“NameYouGaveMyConfigWhenRegisteringInCastle”);
ForKey(“…”)是传递到MyConfig连接器的参数的确切名称

等式(“…”)是您在注册MyConfig时给出的名称:

container.Register(Component
.For<IMyConfig>()
.ImplementedBy<MyConfig>()
.Named("config");
container.Register(组件
.对于()
.由()实施
。命名为(“配置”);
所以你要在“配置”中输入“NameYouGaveMyConfig…”

是的,你可以这样做:

   container.Register(Component
  .For<IConnector>()
  .ImplementedBy<Connector>()
  .ServiceOverrides(
   ServiceOverride
  .ForKey("myConfig")
  .Eq("NameYouGaveMyConfigWhenRegisteringInCastle"));
container.Register(组件
.对于()
.由()实施
.ServiceOverrides(
服务覆盖
.ForKey(“myConfig”)
.Eq(“NameYouGaveMyConfigWhenRegisteringInCastle”);
ForKey(“…”)是传递到MyConfig连接器的参数的确切名称

等式(“…”)是您在注册MyConfig时给出的名称:

container.Register(Component
.For<IMyConfig>()
.ImplementedBy<MyConfig>()
.Named("config");
container.Register(组件
.对于()
.由()实施
。命名为(“配置”);
所以你在“配置”中输入了“NameYouGaveMyConfig…”