我讀過關於Autofac的快速。我已經看到了編碼,它的整潔。但我不太清楚如何使用它。我用過StructureMap,它有一個靜態的ObjectFactory。 Ninject有內核,但在autofac的谷歌網頁,他們建議更換做這樣的事情:使用Autofac什麼是優點和缺點
using(var resolver = builder.Build()){
var whatINeed = resolver.Resolve<INeedThisService>();
}
這是一個WinForms應用程序,所以我從做上面有一個無效的對象狀態,所以我swiched具有全球性的IContainer,並做到這一點
using(var resolver = Program.Container.CreateInnerContainer())
{
var whatINeed = resolver.Resolve<INeedThisService>();
}
我已經使用它約3或5次。但是那有效嗎?或者我應該做的封面
internal static TServervice Resolver<TService>(){
if(_container == null) _container = builder.Build();
return _container.Resolve<TService>();
}
至極,你會用了,爲什麼在類似
var whatINeed = Program.Resolve<INeedThisService>()
和。還有與CreateInnerContainer()一起工作的懲罰?
我知道如何使用IoC,我希望能夠訪問我的服務的框架準則。使用StructureMap是一個明確的解決方案,您只需使用ObjectFactory。但是Autofac並不是那麼清晰,我不願意重新註冊所有組件 – 2009-06-12 09:29:50
您能解釋一下「重新註冊」所有組件的含義嗎?您是否正在尋找裝配中所有類型的自動註冊?我將同時查看StructureMap的ObjectFactory。 – 2009-06-30 18:38:13
重新註冊表示再次運行生成IContainer的部分。問題在於如何通過使用(..)語句來運行IContainer。 – 2009-08-16 19:09:27