CommunityToolkit / CommunityToolkit/dotnet

Question [SourceGenerators]: Set WeakReferenceMessenger.Default for class with non-default ctor

Open
#314 0 comments 0 reactions 0 assignees View on GitHub
feature request :mailbox_with_mail:
Dominant language
C#
Stars
3.8k
Forks
400
PR merge metrics
No merged PRs in 30d

Description

### Overview

Would it be possible to default Messenger to use WeakReferenceMessenger.Default for ObservableRecipient class when non-default constructor is used? (SourceGenerators only)

Example:
```
[ObservableObject]
[ObservableRecipient]
public partial class Class1
{
}

Generates: public Class1() : this(global::CommunityToolkit.Mvvm.Messaging.WeakReferenceMessenger.Default)
```
vs
```
[ObservableObject]
[ObservableRecipient]
public partial class Class1
{
public Class1()
{
}
}

protected global::CommunityToolkit.Mvvm.Messaging.IMessenger Messenger { get; **set;** } = global::CommunityToolkit.Mvvm.Messaging.WeakReferenceMessenger.Default;
```

May help upgrading from ObservableRecipient base class to SourceGenerators (when some classes work and other not :) )

### API breakdown

n/a

### Usage example

n/a

### Breaking change?

I'm not sure

### Alternatives

n/a

### Additional context

_No response_

### Help us help you

No, just wanted to propose this

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.