2

如何在 Autofac 2.5 中启用属性注入,以便自动设置我的公共 ILogger Log 属性?

我正在使用以下方法在 Autofac 2.4 的 MVC3 项目中启用属性注入

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。

4

1 回答 1

2

您现在可以PropertiesAutowired在注册上使用该方法来指示应该执行属性注入。

var builder = new ContainerBuilder();
builder.RegisterType<Foo>().PropertiesAutowired();

要为特定程序集中的所有对象设置此项,您可以将 PropertiesAutowired 与 Autofacs RegisterAssemblyTypes 一起使用:

var builder = new ContainerBuilder();
builder.RegisterAssemblyTypes(typeof(Foo).Assembly)
    .PropertiesAutowired();
于 2012-04-09T11:57:11.150 回答