2014-09-01 76 views
0

我試圖更新我的代碼以除去ObjectFactory的用法,並傳遞IContainer對象,但是我遇到的一個問題是在我的代碼中初始化SM,我需要訪問容器。例如:StructureMap - 在初始化時用Container替換ObjectFactory

var container = new Container(x => 
     { 
      x.For<IFoo>().Use(() => new Bar(ObjectFactory.GetInstance<IApplicationSettings>().MyConnectionString)); 
     }); 

Bar類無法更新以注入IApplicationSettings。有什麼方法可以在這裏替換ObjectFactory的用法嗎?

回答

1
var container = new Container(x => 
{ 
    x.For<IFoo>().Use(c => new Bar(
     c.GetInstance<IApplicationSettings().MyConnectionString)); 
}); 

應該工作。

Use方法有一個過載,其中包含一個可用於訪問容器的IContext lambda。

+0

啊,我怎麼錯過了!謝謝。 – Tom 2014-09-04 08:34:36

相關問題