我想我得到了關於依賴倒置和使用IoC容器的大部分內容,但有一點仍然不明顯。如何使用autofac自動執行下列工廠:什麼是使用autofac創建需要參數的對象的正確方法?
public class WidgetFactory
{
public static IWidget Create(int foo, double bar)
{
return new Widget(foo, bar);
}
}
public class Widget
{
private readonly int foo;
private readonly double bar;
public Widget(int foo, double bar)
{
this.foo = foo;
this.bar = bar;
}
}
別處......
public class FoobarUser
{
public void Method()
{
var widget = WidgetFactory.Create(3, 4.863);
// Do something with my widget
// Possibly add it to a widget collection
}
}
基本上,我需要成千上萬的小部件的創建和我不知道的最好的方式這樣做。我將如何使用autofac創建窗口部件工廠,以及如何在Method中使用該窗口工具,並記住該方法不包含對IContainer的引用?
的問題是,你不知道在編譯時的值將是什麼 - 它們是動態在運行時生成,應用程序一次可以使用數千個獨特的實例。 – Stephen
如果他們不是依賴項(大多數情況下是服務),那麼你不會注入它們。像你創建的工廠方法似乎是適當的。 – agartee