Unity IoC动态分辨率

时间:2017-03-30 22:48:35

标签: c# dependency-injection unity-container

我想解决一些只在运行时才知道的依赖项。我正在使用配置文件来配置Unity(不是以编程方式)。

以下是一些显示我想要实现的内容的代码。

类:

internal class WorkflowFactory : IWorkflowFactory
{
    public IItemWorkflow GetWorkflow(string discriminator)
    {
        // return an implementation of IItemWorkflow as specified in config file
        return null;
    }
}

public interface IWorkflowFactory
{
    IItemWorkflow GetWorkflow(string discriminator);
}

public interface IItemWorkflow
{
    void Handle(int id);

    // More methods
}

用法:

internal class Program
{
    private static void Main(string[] args)
    {
        IWorkflowFactory factory = new WorkflowFactory();

        // I am using args to show I do not know the string until runtime
        var wf1 = factory.GetWorkflow(args[0]); 
        var wf2 = factory.GetWorkflow(args[1]);
    }
}

如果你知道更好的方式,我会完全公开并邀请你提出建议。

0 个答案:

没有答案