MVVMLight Messenger无法发送空消息

时间:2012-02-15 11:16:33

标签: silverlight mvvm mvvm-light

我在Silverlight 5中使用MVVMLight。 有谁知道为什么它不能发送空消息?

我正在使用Send(TMessage消息)

Messenger.Default.Send(空);

一般来说,如果viewmodels需要互相交谈,这不是一种方法吗? 我无法发送空消息看起来很奇怪。 在我的例子中,我有一个Map对象,viewmodels需要共享。

感谢。

2 个答案:

答案 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)。