在Castle Windsor中,我希望将一个特定的具体实现传递给容器注册类的构造函数。像这样的东西(我知道语法最后是非法的; - )):
var myConfig = new MyConfig();
container.Register(Component
.For<IConnector>()
.ImplementedBy<Connector>()
.Parameters(myConfig));
在创建连接器时,我是否可以传入myConfig?这可能吗?
(连接器有一个以MyConfig作为参数的构造函数)
答案 0 :(得分:1)
是的,你可以这样做:
container.Register(Component
.For<IConnector>()
.ImplementedBy<Connector>()
.ServiceOverrides(
ServiceOverride
.ForKey("myConfig")
.Eq("NameYouGaveMyConfigWhenRegisteringInCastle"));
ForKey(“...”)是传递给Connector for MyConfig的参数的确切名称。
Eq。(“...”)是您注册MyConfig时的名称:
container.Register(Component
.For<IMyConfig>()
.ImplementedBy<MyConfig>()
.Named("config");
所以你输入“config”我输入“NameYouGaveMyConfig ...”