我在Silverlight 5中使用MVVMLight。 有谁知道为什么它不能发送空消息?
我正在使用Send(TMessage消息)
Messenger.Default.Send(空);
一般来说,如果viewmodels需要互相交谈,这不是一种方法吗? 我无法发送空消息看起来很奇怪。 在我的例子中,我有一个Map对象,viewmodels需要共享。
感谢。
答案 0 :(得分:1)
在MVVM Light V4 beta中,引入了一个回归错误,导致空消息失败并出现NullReferenceException。这个bug将尽快修复。
干杯, 劳伦
答案 1 :(得分:0)
我不熟悉有问题的特定库,但是如果你使用泛型参数调用方法,则不能简单地传递null,因为null意味着“什么都没有”,它需要一种特殊的东西。因此,对于像void Send<TMessage>(TMessage messgae)
这样的方法,您必须执行以下操作:
Send<string>(null);
或
Send((string)null);
如果您随后获得运行时异常(例如NullArgumentException),那么您可以考虑使用您要封装的某种默认/无行为来定义NoMessage类型(请参阅Null Object Pattern)。