我为我的项目创建了一个函数(字典):
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)。我可以通过依赖注入来改善功能吗?在研究过程中,我找到了一种注入字典的方法。我听不懂“注入”这个词。有人能提供代码示例来实现我的目标或任何解决问题的指导方针吗?
发布于 2015-06-02 21:32:16
通常,您可以“注入”某种实现接口的服务。在你的例子中,它应该是这样的:
public interface IStrategyFactoryService
{
public Dictionary<string, Func<IMessageProcessor>> Factories {get;}
}然后,类将有一个构造函数参数(如果类函数需要数据)或一个属性(如果数据有用,但不是必需的)。
然后创建实现该接口的类--为“实时”应用程序创建一个真实的类,为测试创建一个假的类。
https://stackoverflow.com/questions/30606224
复制相似问题