& # 39; Catel.IoC.IServiceLocator& # 39;不包含'Instance'
本文关键字:Instance 包含 IoC Catel IServiceLocator | 更新日期: 2023-09-27 18:14:54
我对。net开发和Catel很陌生,但正在做一个项目来学习它。目前,原来的开发人员不在场,所以我将在这里碰碰运气。
实现撤销/重做的备忘录模式的支持Catel似乎很好,所以给它一个尝试,但我有问题获得MementoService的实例。当我在ViewModel中这样做时:
var mementoService = ServiceLocator.Instance.ResolveType<IMementoService>();
我得到:
'Catel.IoC.IServiceLocator' does not contain a definition for 'Instance' and no extension method 'Instance' accepting a first argument of type 'Catel.IoC.IServiceLocator' could be found (are you missing a using directive or an assembly reference?)
我注意到,当我在我的模型中做同样的事情时,虽然我没有得到这个问题。似乎很奇怪,我需要不同的方式来获取服务的实例,这取决于我试图获得它的位置。
我不明白我做错了什么。NuGet包管理控制台告诉我,我已经安装了Catel. extensions . memento 3.7和Catel。核心,Catel。MVVM和Catel.Extensions.Controls我使用Visual Studio 2013与。net 4.0。
接口没有Instance属性,已经过时了。
你应该这样写:
1)在静态上下文中:
Catel.IoC.ServiceLocator.Default
2)在非静态上下文中(自动处理作用域):