Table of Contents

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

WeakReferenceMessenger

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 object
token TToken

Returns

bool

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 TRecipient
token TToken
handler 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 TMessage
token 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 object
token 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 object
token TToken

Type Parameters

TMessage
TToken