このブログ投稿で WeakEventHandler が見つかった場合
しかし、彼は次のように述べています。
更新: はい、これが壊れていることはわかっています。動かないというバグが…。
そして、バグが何であるかは言いません:(
public class WeakEventHandler<DT, T> where T : EventArgs
{
private WeakReference weakRefToOriginalDelegate;
public WeakEventHandler(EventHandler<T> originalDelegate)
{
weakRefToOriginalDelegate = new WeakReference(originalDelegate);
}
private void DoInvoke(object sender, T args)
{
EventHandler<T> originalDelegate = (EventHandler<T>) weakRefToOriginalDelegate.Target;
if (originalDelegate != null) originalDelegate(sender, args);
}
public static implicit operator DT(WeakEventHandler<DT, T> wd)
{
object o = Delegate.CreateDelegate(typeof (DT), wd, "DoInvoke");
return (DT) o;
}
}
誰かがこの WeakEventHandler 実装のバグを説明できますか?