【问题标题】:MVVMLight Messenger cannot send a null messageMVVMLight Messenger 无法发送空消息
【发布时间】:2012-02-15 11:16:32
【问题描述】:

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

我正在使用发送(TMessage 消息)

Messenger.Default.Send(null);

一般来说,如果视图模型需要相互通信,这不是一种方法吗? 我无法发送空消息看起来很奇怪。 就我而言,我有一个视图模型需要共享的 Map 对象。

谢谢。

【问题讨论】:

    标签: silverlight mvvm mvvm-light


    【解决方案1】:

    在 MVVM Light V4 测试版中,引入了一个回归错误,该错误会导致空消息失败并出现 NullReferenceException。此错误将尽快修复。

    干杯, 洛朗

    【讨论】:

      【解决方案2】:

      我不熟悉有问题的特定库,但是如果您使用泛型参数调用方法,则不能简单地传递 null,因为 null 表示“无”,它需要特定类型的无。因此,对于像 void Send<TMessage>(TMessage messgae) 这样的方法,您必须执行以下操作:

      Send<string>(null);
      

      Send((string)null);
      

      如果您随后遇到运行时异常(例如 NullArgumentException),那么您可以考虑使用您想要封装的某种默认/无行为来定义 NoMessage 类型(请参阅Null Object Pattern)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-05-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-07
        • 2021-05-05
        • 2021-06-25
        相关资源
        最近更新 更多