IMessenger.Send接收令牌的重载超载

时间:2010-06-27 03:10:08

标签: mvvm-light

不确定这是否是设计决定,但IMessage.Send似乎缺少接受令牌的重载

1 个答案:

答案 0 :(得分:2)

假设“令牌”是指一个标识消息内容的字符串,您可以做几件事。

  1. 您可以将NotificationMessage类用作要发送的邮件。

    Messenger.Default.Send(new NotificationMessage("Token"));
    
  2. 如果您想使用字符串以外的其他内容作为令牌,则可以使用NotificationMessage。

    Messenger.Default.Send(new NotificationMessage<IToken>(new Token()));
    
  3. 您可以创建自己的消息类并使用它。这使您只能注册自定义类型的消息。 这是我的建议。

    public class ErrorMessage : GenericMessage<Exception>
    {
        public ErrorMessage(Exception content) : base(content)
        {
        }
        public ErrorMessage(object sender, Exception content) : base(sender, content)
        {
        }
        public ErrorMessage(object sender, object target, Exception content) : base(sender, target, content)
        {
        }
    }