A simple, lightweight event messenger that uses a ConditionalWeakTable internally.
Handlers are automatically removed when the subscriber is garbage-collected.
NuGet: https://www.nuget.org/packages/Bitbound.SimpleMessenger
// Program.csusingBitbound.SimpleMessenger;// ...services.AddSingleton<IMessenger>(WeakReferenceMessenger.Default);// MyService.cspublicclassMyService:IMyService{publicMyService(IMessengermessenger){// Registers a handler under the default channel.// The handler will be removed automatically if// this MyService instance is garbage-collected.messenger.Register<SomeMessageType>(this,MyHandler);}privateasyncTaskMyHandler(objectsubscriber,SomeMessageTypemessage){// Handle the message.}}