Class WeakReferenceMessenger
- Namespace
- CommunityToolkit.Mvvm.Messaging
- Assembly
- CommunityToolkit.Mvvm.dll
A class providing a reference implementation for the IMessenger interface.
public sealed class WeakReferenceMessenger : IMessenger
- Inheritance
-
WeakReferenceMessenger
- Implements
- Inherited Members
- Extension Methods
Remarks
This IMessenger implementation uses weak references to track the registered recipients, so it is not necessary to manually unregister them when they're no longer needed.
The WeakReferenceMessenger type will automatically perform internal trimming when full GC collections are invoked, so calling Cleanup() manually is not necessary to ensure that on average the internal data structures are as trimmed and compact as possible.
Constructors
WeakReferenceMessenger()
Initializes a new instance of the WeakReferenceMessenger class.
public WeakReferenceMessenger()
Properties
Default
Gets the default WeakReferenceMessenger instance.
public static WeakReferenceMessenger Default { get; }
Property Value
Methods
Cleanup()
public void Cleanup()
IsRegistered<TMessage, TToken>(object, TToken)
public bool IsRegistered<TMessage, TToken>(object recipient, TToken token) where TMessage : class where TToken : IEquatable<TToken>
Parameters
recipient
objecttoken
TToken
Returns
Type Parameters
TMessage
TToken
Register<TRecipient, TMessage, TToken>(TRecipient, TToken, MessageHandler<TRecipient, TMessage>)
public void Register<TRecipient, TMessage, TToken>(TRecipient recipient, TToken token, MessageHandler<TRecipient, TMessage> handler) where TRecipient : class where TMessage : class where TToken : IEquatable<TToken>
Parameters
recipient
TRecipienttoken
TTokenhandler
MessageHandler<TRecipient, TMessage>
Type Parameters
TRecipient
TMessage
TToken
Reset()
public void Reset()
Send<TMessage, TToken>(TMessage, TToken)
public TMessage Send<TMessage, TToken>(TMessage message, TToken token) where TMessage : class where TToken : IEquatable<TToken>
Parameters
message
TMessagetoken
TToken
Returns
- TMessage
Type Parameters
TMessage
TToken
UnregisterAll(object)
public void UnregisterAll(object recipient)
Parameters
recipient
object
UnregisterAll<TToken>(object, TToken)
public void UnregisterAll<TToken>(object recipient, TToken token) where TToken : IEquatable<TToken>
Parameters
recipient
objecttoken
TToken
Type Parameters
TToken
Unregister<TMessage, TToken>(object, TToken)
public void Unregister<TMessage, TToken>(object recipient, TToken token) where TMessage : class where TToken : IEquatable<TToken>
Parameters
recipient
objecttoken
TToken
Type Parameters
TMessage
TToken