В течение нескольких недель я с большим успехом использовал контейнер для инъекций зависимостей 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?
Заранее спасибо за любую помощь.