据我了解,DI的实现基于
1.ISample接口
2.示例:ISampleInterface
3. ISampleInterface 与 Sample 的配置绑定。
4.和构造函数注入
ISampleInterface _sampleInterface;
Constructor(ISampleInterface sampleInterface)
{
_sampleInterface = sampleInterface;
}
其余的事情由 DI 处理。
但如果在某些情况下,在具体的接口实现类中,可能需要“新建”初始化。那我该怎么办?
在Sample类中,
如果我需要申报
private const int _limitSize = 70;
limits = new int[_limitSize];
或在Sample类中。可能需要为接口方法实现编写下面的代码。
Dictionary<string, object[]> arr = new Dictionary<string, object[]>()
{
{"name", new string[1]{listName}},
};
实际执行
public string ContactListsAdd(string listName)
{
Dictionary<string, object[]> arr = new Dictionary<string, object[]>()
{
{"name", new string[1]{listName}},
};
return callSomePrivateMethod("contact-lists.add", arr);
}
所以我的问题是,当我们使用 DI 时手动创建对象是否正确?按照例子。或者他们有什么方法可以避免这种情况?