0
我正在寻找一个可能的解决方案以下。Autofac。基础类属性解决没有特定的注入
我有一个基类有一个依赖,我目前使用属性注入来满足。
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事件?它的工作正常,但只想清理注册。
我想我应该扩大。我有一个循环参考,因此OnActivated。 (循环参考是有意义的)。我想我的意思是,我希望OnActivated应用于BaseClass上的所有子类,而无需为每个注册编写OnActivated。 (IService是一个Singleton,它也引用所有已注册的IDerivedClasses)。它与OnActivated一起工作良好,只是想清理它。 – 2012-04-15 23:30:46
其实我可能是错的,但是如果你对singleton有循环依赖 - 在设计这个组件的时候出错的可能性是99.9%。关于你的问题,如果它仍然适合你,我会在几天后看看,现在非常忙碌 – Ph0en1x 2012-04-17 14:39:12