如何在 Autofac 2.5 中启用属性注入(inject),以便自动设置我的公共(public) ILogger Log 属性?
我使用以下方法在 Autofac 2.4 的 MVC3 项目中启用属性注入(inject)
public class InjectPropertiesByDefaultModule : Autofac.Module
{
protected override void AttachToComponentRegistration (IComponentRegistry componentRegistry, IComponentRegistration registration)
{
registration.Activating += (s, e) =>
{
e.Context.InjectProperties (e.Instance);
};
}
}
builder.RegisterModule<InjectPropertiesByDefaultModule> ();
但这似乎不再适用于 Autofac 2.5。
最佳答案
您现在可以在注册中使用 PropertiesAutowired
方法来指示应执行属性注入(inject)。
var builder = new ContainerBuilder();
builder.RegisterType<Foo>().PropertiesAutowired();
要为特定程序集中的所有对象设置此属性,您可以将 PropertiesAutowired 与 Autofacs RegisterAssemblyTypes 结合使用:
var builder = new ContainerBuilder();
builder.RegisterAssemblyTypes(typeof(Foo).Assembly)
.PropertiesAutowired();
关于asp.net-mvc-3 - 使用 Autofac 2.5 进行属性注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10048494/