我正在使用Unity,DI的项目中工作。 我也使用我的应用程序要求的COR(责任链)模式。 我遇到了一个问题,陷入了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注入链中的这些处理程序吗? 记住,我在这里只提到了一些依赖。有些处理程序具有多个依赖项。
由于我没有显式创建这些处理程序的实例以执行,并且chain会照顾它,因此我不知道如何注入这些依赖项。 请注意,每个处理程序的依赖关系都不同。
任何帮助将不胜感激。
谢谢