Posted at

Messengerクラス(MVVM Light Toolkit リファレンス)


Messenger


概要

public class Messenger : IMessenger



  • IMessengerインターフェイスを実装したメッセンジャーのクラス。


名前空間


  • GalaSoft.MvvmLight.Messaging


アセンブリ


  • GalaSoft.MvvmLight


メソッド


Cleanup

Cleanup

public void Cleanup()


概要


  • メッセージの受領者リストから、無効な(ガベージコレクションされた)インスタンスを取り除く。同期的に実行する。

  • このメソッドよりも、RequestCleanupメソッドを使うべきである。



OverrideDefault

OverrideDefault

public static void OverrideDefault(IMessenger newMessenger)


概要



  • Messenger.Defaultが戻すインスタンスをnewMessengerに変更する。

  • 単体テストなどの場合に使うとよい。



Register<TMessage>

Register<TMessage>

public virtual void Register<TMessage>(object recipient, System.Action<TMessage> action, bool keepTargetAlive = false)

public virtual void Register<TMessage>(object recipient, object token, System.Action<TMessage> action, bool keepTargetAlive = false)
public virtual void Register<TMessage>(object recipient, bool receiveDerivedMessagesToo, System.Action<TMessage> action, bool keepTargetAlive = false)
public virtual void Register<TMessage>(object recipient, object token, bool receiveDerivedMessagesToo, System.Action<TMessage> action, bool keepTargetAlive = false)


概要



  • TMessage型のメッセージの受領者として、recipentを登録する。

  • メッセージを受領したとき、actionを実行する。actionがクロージャーの場合、keepTargetAlivetrueにすること。


  • tokenを指定した場合、メッセージの受領者は、同じtokenを指定したメッセージのみを受領する。


  • receiveDerivedMessagesTootrueの場合、メッセージの受領者は、TMessage型の派生クラスのメッセージも受領する。TMessage型がインターフェイスの場合、TMessageを実装したクラスのメッセージを受領する。



RequestCleanup

RequestCleanup

public void RequestCleanup()


概要


  • メッセージの受領者リストから、無効な(ガベージコレクションされた)インスタンスを取り除く。アプリケーションがアイドル時に、非同期に実行する。


  • Cleanupメソッドではなく、このメソッドを使うべきである。



Reset

Reset

public static void Reset()


概要



  • Messenger.Defaultが戻すインスタンスを、新しく作り直す。



ResetAll

ResetAll

public void ResetAll()


概要



  • Messenger.Defaultが戻すインスタンスを、新しく作り直す。


  • Resetと同じ働きをするメソッドの、インスタンス・メンバー版。



Send<TMessage>, Send<TMessage, TTarget>

Send<TMessage>, Send<TMessage, TTarget>

public virtual void Send<TMessage>(TMessage message)

public virtual void Send<TMessage>(TMessage message, object token)
public virtual void Send<TMessage, TTarget>(TMessage message)


概要



  • TMessage型のメッセージを送る。


  • tokenを指定した場合、同じtokenを指定して登録した受領者のみ、このメッセージを受領する。


  • TTargetを指定した場合、受領者の型がTTargetの場合のみ、このメッセージを受領する。



Unregister, Unregister<TMessage>

Unregister, Unregister<TMessage>

public virtual void Unregister(object recipient)

public virtual void Unregister<TMessage>(object recipient)
public virtual void Unregister<TMessage>(object recipient, object token)
public virtual void Unregister<TMessage>(object recipient, System.Action<TMessage> action)
public virtual void Unregister<TMessage>(object recipient, object token, System.Action<TMessage> action)


概要



  • recipientを、メッセージの受領者としての登録を解除する。


  • TMessageを指定した場合、TMessage型のメッセージの受領についてのみ、登録を解除する。


  • tokenを指定した場合、同じtokenを指定したメッセージの受領についてのみ、登録を解除する。


  • actionを指定した場合、同じactionを指定したメッセージの受領についてのみ、登録を解除する。



プロパティ


Default

Default

public static IMessenger Default { get; }


概要


  • デフォルトのメッセンジャーのインスタンスを戻す。



参照