2011-12-12 48 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 ......」