是否可以在接口列表中使用MVVM中的依赖注入?
我已尝试将依赖关系设为List<IMyInterface> IList<IMyInterface>
。在我ViewModelLocator
内,我也尝试了List<>
和不List<>
。如果我在没有List<dataType> data = new List<dataType>();
的情况下执行此操作,我会得到一个缓存并不具有List异常的值,如果我这样做,(对于List)我得到一个没有首选的构造函数异常(因为List有多个构造函数,而且我无法设置属性,因为它是.net中的一个类
我能想到的唯一可能的解决方案将限制我的可测试性,即将所有列表作为具体实现,即我有
{{1}}
有没有办法让IOC列表?或者你应该具体代码?
答案 0 :(得分:1)
ViewModelLocator可以拥有可通过它访问的静态对象。
public class ViewModelLocator
{
....
private static List<IMyInterface> _myInterfaces;
public static List<IMyInterface> MyInterfaces
{
get
{
return _myInterfaces;
}
set
{
// So that it will be readonly. Technically unnecessary, but may be good
// practice.
if(_myInterfaces != null) return;
_myInterfaces = value;
}
}
}
然后在您的主应用程序中,只要您获得列表,
ViewModelLocator.MyInterfaces = GetMyInterfaceList();
希望这有助于和快乐编码!