我一直在尋找使用XmlConfiguration在autofac中註冊工廠類的方法,但文檔看起來有點苗條。使用web.config在Autofac中註冊工廠類
我想做到的是做到以下幾點在我的配置,而不是:
builder.Register(c => MyFactory.GetMyObject()).As<IMyObject>();
是否有這樣做的什麼好的辦法?
我一直在尋找使用XmlConfiguration在autofac中註冊工廠類的方法,但文檔看起來有點苗條。使用web.config在Autofac中註冊工廠類
我想做到的是做到以下幾點在我的配置,而不是:
builder.Register(c => MyFactory.GetMyObject()).As<IMyObject>();
是否有這樣做的什麼好的辦法?
這樣做的方法是將您的註冊封裝到可從XML註冊的Autofac模塊中。 (模塊描述如下:http://code.google.com/p/autofac/wiki/StructuringWithModules)
你的模塊看起來是這樣的:
public class MyModule : Module
{
protected override void Load(ContainerBuilder builder)
{
builder.Register(c => MyFactory.GetMyObject()).As<IMyObject>();
}
}
和XML進行註冊:
<module type="MyModule" />
Autofac最初是爲從代碼配置,甚至是自動佈線而構建的。
也許你正在尋找的是類似Spring.NET或Castle。這兩個框架最初是爲了從XML配置,甚至是自動配置而構建的。
從代碼處理註冊似乎對使用web.config有一些優點,因爲通過這種方式處理複雜的依賴關係似乎更容易。
當我看到下面的例子時,唯一擔心的是所有註冊都是在Global.asax中完成的。不過,通過向單獨的程序集分發註冊,這很容易解決。