我一直在寻找一种使用XmlConfiguration在autofac中注册工厂类的方法,但文档看起来有点渺茫。
我想要完成的是在我的配置中执行以下操作:
builder.Register(c => MyFactory.GetMyObject()).As<IMyObject>();
有没有好办法呢?
答案 0 :(得分:3)
执行此操作的方法是将注册封装到Autofac模块中,该模块可以从XML注册。 (模块在这里描述: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" />
答案 1 :(得分:0)
Autofac最初是为代码配置甚至自动装配而构建的。
也许您正在寻找的是Spring.NET或Castle。这两个框架最初构建为从XML配置,甚至是自动装配。
答案 2 :(得分:0)
从代码处理注册似乎对使用web.config有一些好处,因为以这种方式处理复杂的依赖关系似乎更容易。
在我可以找到的示例中,我唯一担心的是所有注册都是在Global.asax中完成的。通过将注册分解为单独的程序集,可以很容易地解决这个问题。