繁体   English   中英

Autofac。 无需特定注入即可解决基类属性

[英]Autofac. Base Class properties resolved without specific injection

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

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

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注册,而无需为每个注册设置一个Activation事件? 这样工作正常,但只想清理注册。

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

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

}

并让autofac自动执行工作,例如

builder.RegisterType<T>();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM