メッセージング システムを実装しようとしていますが、通常の .NET イベントを使用しているだけでしたが、発行者がサブスクライバーよりも長く存続し、発行者がサブスクライバーへの参照を保持し、イベントが登録解除されないようにするという問題がありました。
私は弱いイベントを調べていましたが、それらには非常に多くの異なる実装があり、それらについて頭を悩ませていました。シンプルなものが欲しい。
また、それらのほとんどは、参照を保持していない場合でも、イベントをすぐに登録解除しません。オブジェクトの参照がなくなるか範囲外になったら、すぐにイベントの登録を解除するシステムが必要です。
組み込みのイベント シンタックス シュガーを使用せず、代わりに public static クラスを使用して全体の取り組みを容易にすることに問題はありません。
サブスクライバーが使用されなくなった直後に自動的に登録解除される、サブスクライブされたすべてのメソッドを呼び出すイベントを1つのクラスで発生させたいだけです。
これを行うことができますか、または何らかの方法でフレームワークに既に存在していますか?