几个星期以来,我一直在使用Simple Injector依赖注入容器,并取得了巨大的成功。我喜欢轻松配置它。但是现在我有一个我不知道如何配置的设计。我有一个基类,其中有许多派生类型,我想将依赖项注入基类的属性中,但不必为每个派生类配置它。我试图用属性来做到这一点,但 Simple Injector 不支持属性。这是我设计的精简版。
public interface Handler<TMessage> where TMessage : Message
{
void Handle(TMessage message);
}
public abstract class BaseHandler
{
// This property I want to inject
public HandlerContext Context { get; set; }
}
// Derived type
public class NotifyCustomerHandler : BaseHandler,
Handler<NotifyCustomerMessage>
{
public NotifyCustomerHandler(SomeDependency dependency)
{
}
public void Handle(NotifyCustomerMessage message)
{
}
}
我的配置现在看起来像这样:
container.Register<HandlerContext, AspHandlerContext>();
container.Register<Handler<NotifyCustomerMessage>, NotifyCustomerHandler>();
// many other Handler<T> lines here
如何在 BaseHandler 中注入属性?
提前感谢您的帮助。