【发布时间】:2014-07-25 12:52:56
【问题描述】:
我对 .NET 开发和 Catel 还很陌生,但正在开展一个项目来学习它。目前原开发者不在场,所以我会在这里碰碰运气。
要实现撤消/重做,Catel 的 Memento 模式支持似乎很棒,所以尝试一下,但我在获取 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.Core、Catel.MVVM 和 Catel.Extensions.Controls 3.7。我正在使用带有 .NET 4.0 的 Visual Studio 2013。
【问题讨论】:
-
我对Catel一无所知,但如果你参加它的课程并在
Instance上按F12,它会给你带来什么?也许它是一种扩展方法,而您只缺少一个using。 -
它是 Catel.IoC 的一部分,并将
using Catel.IoC;添加到我的 ViewModel 中,但没有帮助。感谢您的建议,尽管它没有帮助。