独自のWeakEventManagerを作成して、msdn に従って WeakEventManager を実装しようとしています。
私の問題はStaticPublisher
、静的イベントを公開している静的クラスがあることOnSomeStaticEvent
です。
このイベントを別のクラスからサブスクライブしたい。これは私が今持っているコードです(簡略化):
public static class StaticPublisher
{
//definition of static event
public static event EventHandler<CancelEventArgs> OnSomeStaticEvent;
public static void OnSomeStaticEventHandler(CancelEventArgs e)
{
EventHandler<CancelEventArgs> handlerCopy = OnVisualDisplayBeforeRemoved;
if (handlerCopy != null)
handlerCopy(null, e);
}
}
私のWeakEventManagerは次のようになります(msdnをもう一度たどります):
class OnSomeStaticEventWeakEventManager : WeakEventManager
{
private OnSomeStaticEventWeakEventManager ()
{
}
/// <summary>
/// Add a handler for the given source's event.
/// </summary>
public static void AddHandler(StaticPublisher, EventHandler<CancelEventArgs> handler)
{
if (source== null)
throw new ArgumentNullException("source");
if (handler == null)
throw new ArgumentNullException("handler");
CurrentManager.ProtectedAddListener(source, handler);
}
// more code follows down. but is all relative to this part
StaticPublisher
私の問題は、引数として与えることが許可されていないため、このイベントにリスナーを追加できないことです。ここに回避策はありますか?私は本当にここでいくつかの助けを借りることができました...