我为我的项目创建了一个函数(字典):
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)。我可以通过依赖注入来改善功能吗?在研究过程中,我找到了一个注入词典的选项。我无法理解'注入'这个词。任何人都可以提供代码示例来实现我的目标或解决问题的任何指导。
答案 0 :(得分:1)
通常,您“注入”某种实现接口的服务。在你的情况下,它将是这样的:
public interface IStrategyFactoryService
{
public Dictionary<string, Func<IMessageProcessor>> Factories {get;}
}
然后,您的类将具有构造函数参数(如果要运行的类需要数据)或属性(如果数据有帮助但不是必需)
然后创建实现该界面的类 - 真正的“实时”应用程序和假的应用程序。