6
我想弄清楚如何解決代碼中某處的實例。解決實例 - Autofac
在應用程序啓動時我註冊了一個類型
static void Main()
{
var builder = new ContainerBuilder();
builder.RegisterType<Foo>().As<IFoo>();
}
現在,我怎麼能在某處代碼解決一個實例?
在StructureMAP有上Getting Started閱讀了靜態對象ObjectFactory.GetInstance<IFoo>()
這就是例子,但是如果我需要更多類中的實例?無法在每個班級中註冊該類型。 – user137348 2010-04-29 13:13:08
但是你必須以某種方式解決代碼中某個地方的最高層實例。這些類型會在啓動時註冊(Global.asax),然後您需要解析代碼中某處的最頂層實例。最後,我找到了一篇描述這一點的文章。 http://geekswithblogs.net/Sharpoverride/archive/2009/08/15/ioc-in-.net-part-1-autofac.aspx 您對這種方法有什麼看法? – user137348 2010-04-30 08:02:42
查看我的更新回答...是的,@Sharpoverrides方法沒問題,它確保Global.asax不會與容器構建代碼混雜在一起。畢竟,你真的應該編寫測試容器的單元測試,並且有一個構建容器的單一責任類可以更容易測試。 – 2010-04-30 09:52:20