如何捕获订阅活动?

时间:2010-09-30 13:26:05

标签: c#

我有与活动的接口。 我的类实现了接口。

该类的逻辑需要修复所有订阅事实并取消订阅事件。

如何实施拦截订阅并取消订阅活动?

2 个答案:

答案 0 :(得分:3)

试试这个:

    private event EventHandler<EventArgs> shibby;

    public event EventHandler<EventArgs> Shibby
    {
        add
        {
            // your logic here
            this.shibby += value;
            // or here
        }
        remove
        {
            // your logic here
            this.shibby -= value;
            // or here
        }
    }

答案 1 :(得分:2)

好吧,如果肯定需要拦截订阅:

private EventHandler fooEventHandler;

public event EventHandler Foo
{
    add
    {
        // Put any extra logic in here
        fooEventHandler += value;
    }
    remove
    {
        fooEventHandler -= value;
    }
}

(请注意,如果您需要线程安全,则需要修改上面的代码。)

但如果您正在使用类似字段的事件,请执行以下操作:

public event EventHandler Foo;

然后你可以通过写(在课堂上)“取消订阅”所有内容:

Foo = null;