我正试图让catel挂起但是有问题。 尝试“通过属性进行消息传递”会出现编译错误。
'Catel.MVVM.ViewModelBase.GetService(object)'已过时:建议不再使用“GetService”。最好注入所有依赖项(TypeFactory完全支持)>将在4.0.0版本中删除。'
private void OnCmdExecute()
{
var mediator = GetService<IMessageMediator>();
mediator.SendMessage("Test Value");
}
[MessageRecipient]
private void ShowMessage(string value)
{
var messageService = GetService<IMessageService>();
messageService.Show(value);
}
我正在使用3.9。 提示和代码片段应该是很好的帮助。 谢谢你的关注。
答案 0 :(得分:1)
GetService标记为已过时。您有两个选择:
1)如果您使用的是视图模型,只需在构造函数中注入服务:
private readonly IMessageMediator _messageMediator;
private readonly IMessageService _messageService;
public MyViewModel(IMessageMediator messageMediator, IMessageService messageService)
{
Argument.IsNotNull(() => messageMediator);
Argument.IsNotNull(() => messageService);
_messageMediator = messageMediator;
_messageService= messageService;
}
2)使用GetDependencyResolver扩展方法:
var dependencyResolver = this.GetDependencyResolver();
var messageMediator = dependencyResolver.Resolve<IMessageMediator>();
建议使用解决方案1。
答案 1 :(得分:0)
感谢您的回答。 我还在“Catel.Examples”解决方案link to download
中找到了一个很好的例子