如何在责任链模式下使用Unity IoC注入多个不同的依赖项?

时间:2018-08-27 21:41:51

标签: dependency-injection unity-container ioc-container chain-of-responsibility

我正在使用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会照顾它,因此我不知道如何注入这些依赖项。 请注意,每个处理程序的依赖关系都不同。

任何帮助将不胜感激。

谢谢

0 个答案:

没有答案