0

我正在寻找以下可能的解决方案。

我有一个基类,它具有我目前使用属性注入来满足的依赖项。

public class BaseClass {
    IService SomeService { get; set; }
}

我有多个从这个基类继承的类。

public class DerivedClass : BaseClass, IDerivedClass {

}

我使用以下注入。

builder.RegisterType<DerivedClass>().As<IDerivedClass>().OnActivated(e => e.Instance.SomeService = e.Context.Resolve<IService>());

我为大约 12 个扩展基类的其他类执行此操作。有没有办法让任何扩展 BaseClass 的类在不为每个注册设置激活事件的情况下获得我的 IService 注册?它像这样工作正常,但只想清理注册。

4

1 回答 1

1

只需使用构造函数注入。为您的类创建带有参数的构造函数,例如

public DerivedClass(IServiceOne service1, IService2 service2)
{
this._service1 = service1;
this._service2 = service2;

}

并让 autofac 自动完成他的工作,比如

builder.RegisterType<T>();
于 2012-04-15T17:23:00.253 回答