Я работаю над проектом, в котором я использую Unity, DI.
Также я использую шаблон COR (Chain of Responsibility), который требует мое приложение.
Я столкнулся с проблемой и застрял с DI. Я надеюсь, что кто-то пролил свет.
public interface IReport
{
int ReportId {get; set;}
}
public Interface IHandler
{
void Process(IReport report);
}
public class HandlerA : IHandler
{
public IHandler Successor;
public DependentX Xxx;
public HandlerA(IHandler successor)
{
Successor = successor;
}
public void Process(IReport report)
{
// Business logic goes here
if(Successor != null)
{
Successor.Process(report);
}
}
}
public class HandlerB : IHandler
{
public IHandler Successor;
public DependentY Yyy;
public HandlerB(IHandler successor)
{
Successor = successor;
}
public void Process(IReport report)
{
// Business logic goes here
if(Successor != null)
{
Successor.Process(report);
}
}
}
public class HandlerC : IHandler
{
public IHandler Successor;
public DependentZ Zzz;
public Repository repo;
public HandlerC(IHandler successor)
{
Successor = successor;
}
public void Process(IReport report)
{
// Business logic goes here
if(Successor != null)
{
Successor.Process(report);
}
}
}
Может ли кто-нибудь предложить, как внедрить зависимости DependentX, DependentY, DependentZ и Repository в эти обработчики в цепочке?
Помните, что я упомянул только несколько зависимостей здесь. Некоторые обработчики имеют более одной зависимости.
Поскольку я не создаю явно экземпляры этих обработчиков для выполнения, и цепочка позаботится об этом, я понятия не имею, как внедрить эти зависимости.
Обратите внимание, что зависимости каждого обработчика различны.
Любая помощь будет оценена.
Спасибо