0

これが設計上の決定であったかどうかはわかりませんが、IMessenger.Sendには、トークンを受け入れるオーバーロードがないようです。

4

1 に答える 1

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)
        {
        }
    }
    
于 2010-06-28T16:37:18.340 に答える