Weak Eventsは、常にWPFとSilverlightで使われているスタイルデータバインディングのメモリ管理テクニックである。以前はこれのために、WeakEventManagerベースクラスが提供されてきた。残念ながら、Weak Eventsパターンは、イベントソースとイベントハンドラの両方にとって面倒だ。カスタムで作られたWeakEventManagerのサブクラスごとに、マッチするイベントハンドラーを実装する必要があった。同じイベントを様々なオブジェクトでモニターする必要がある場合、かなりのいらだちを覚えるだろう。
.NET 4.5では、大分シンプルになった。WeakEventManagerのジェネリック版は、WPF開発者に提供される。サブクラスを明示する必要がない上に、このバージョンではリスナインターフェイスも必要ない。このライブラリの内部ではリフレクションを使ってイベントを繋いでいるため、代わりと言うにはパフォーマンスはよくない。
この新しいアプローチに制限がないわけではない。以前のものと同様に、新しいweak eventマネージャーはコードを共有するのが難しく、Silverlightには提供されない。これはまた、ディスパッチャースレッドにバインドされ続けており、WPFアプリケーション以外には利用できない。最後に、イベントは名前で参照されている。
InfoQはコメントで、あなたのお気に入りのweak event実装の投稿をお待ちしている。