2011-12-12 81 views
1

在温莎城堡我想要一个特定的具体实现传递给容器注册类的构造函数。像这样的东西(我知道的语法是在结束非法;-)):温莎城堡注册实施通过构造函数

var myConfig = new MyConfig(); 
container.Register(Component 
    .For<IConnector>() 
    .ImplementedBy<Connector>() 
    .Parameters(myConfig)); 

反正我有可以的myconfig通过不断连接器创建时?这可能吗?

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

回答

1

是的,你可以这样做:

container.Register(Component 
    .For<IConnector>() 
    .ImplementedBy<Connector>() 
    .ServiceOverrides(
    ServiceOverride 
    .ForKey("myConfig") 
    .Eq("NameYouGaveMyConfigWhenRegisteringInCastle")); 

的ForKey(“...”)是参数的准确名称你传递给MyConfig的连接器。 。

情商( “...”)是当你注册的myconfig你给的名字:

container.Register(Component 
.For<IMyConfig>() 
.ImplementedBy<MyConfig>() 
.Named("config"); 

所以你最好把在 “配置” 在这里我输入 “NameYouGaveMyConfig ......”