【发布时间】:2013-09-17 18:17:47
【问题描述】:
我有一个类,它有这样的构造函数:
private string _someString;
private ObjectA _objectA;
private ObjectB _objectB;
private Dictionary<Enum, long?> _dictionaryA;
private Dictionary<Tuple<Enum,long?>, long?> _dictionaryB;
public SomeDiClass(string someString)
{
_someString = someString;
_objectA = new ObjectA();
_objectB = new ObjectB();
_dictionaryA = new Dictionary<Enum, long?>();
_dictionaryB = new Dictionary<Tuple<Enum, long?>, long?>();
}
我想从这个构造函数中创建依赖项。在第一步中,我会将 ObjectA 和 B 依赖项移动到构造函数参数中,以通过构造函数注入来注入它们。我想为此目的使用 IoC 容器,这就是我目前停留的地方。问题是如何处理 someString 和字典。我需要将它们注入到类中,因为字典的内容将是单元测试的重要组成部分。 通过属性注入注入字符串和字典是否是个好主意(我在其他类中不需要它们),所以我最终会得到这样的东西?:
private ObjectA _objectA;
private ObjectB _objectB;
public string SomeString { get; set; }
public Dictionary<Enum, long?> DictionaryA { get; set; }
public Dictionary<Tuple<Enum, long?>, long?> DictionaryB { get; set; }
public SomeDiClass(ObjectA objectA, ObjectB objectB)
{
_objectA = objectA;
_objectB = objectB;
}
是否有解决此类问题的最佳实践?
【问题讨论】:
-
当你说 ioc 时?你说的是spring,java框架吗?还是另一件事?泰。
-
一般来说。目前的项目是 C#,所以我最终会得到 Unity 之类的东西。
标签: c# dependency-injection ioc-container