哪里可以取消订阅活动?

时间:2016-04-21 11:56:19

标签: c# events

E.g。对于一般类型,它在构造函数中订阅一些事件:

class SomeType
{
    public SomeType(...)
    {
        someEvent1 += ...
        someEvent2 += ...
    }
}

我在哪里取消订阅活动?

  • 终结?
  • IDisposable
  • 某种方法DontForgetToCallMeSoICanUnsubscribeFromEvents()
  • 使用弱事件模式?

我知道取决于。在控件(wpf,winforms)的情况下,有一些事件可用于订阅/取消订阅,如Loaded / UnloadedHandleCreated / HandleDestroyed等。但是如果父母是一个简单的object

还有一些更具体的例子:嵌套的ViewModel,其中每个级别都是List<NextLevelVM>,在任何级别都可以删除ViewModel,这是否意味着每个ViewModel必须实现IDisposable(例如,如果它是正确的方式)它为列表中的每个项目调用Dispose?我尝试使用弱事件,但doesn't go well

0 个答案:

没有答案