使用依赖注入注入字典

时间:2015-06-02 20:44:14

标签: c# dictionary dependency-injection

我为我的项目创建了一个函数(字典):

private static Dictionary<string, Func<IMessageProcessor>> strategyFactories = new Dictionary<string, Func<IMessageProcessor>>()
    {
        { "T.2.12.0", new Func<IMessageProcessor>(() => new HVPVTParser()) },
        { "T.3.03.0", new Func<IMessageProcessor>(() => new PVTParser()) },
        { "Unknown", new Func<IMessageProcessor>(() => new UnknownParser()) }
    };

根据要求,我想摆脱类的新操作符(HVPVTParser,PVTParser和UnknownParser)。我可以通过依赖注入来改善功能吗?在研究过程中,我找到了一个注入词典的选项。我无法理解'注入'这个词。任何人都可以提供代码示例来实现我的目标或解决问题的任何指导。

1 个答案:

答案 0 :(得分:1)

通常,您“注入”某种实现接口的服务。在你的情况下,它将是这样的:

public interface IStrategyFactoryService
{
    public Dictionary<string, Func<IMessageProcessor>> Factories {get;}
}

然后,您的类将具有构造函数参数(如果要运行的类需要数据)或属性(如果数据有帮助但不是必需

然后创建实现该界面的类 - 真正的“实时”应用程序和假的应用程序。