E.g。对于一般类型,它在构造函数中订阅一些事件:
class SomeType
{
public SomeType(...)
{
someEvent1 += ...
someEvent2 += ...
}
}
我在哪里取消订阅活动?
IDisposable
?DontForgetToCallMeSoICanUnsubscribeFromEvents()
?我知道取决于。在控件(wpf,winforms)的情况下,有一些事件可用于订阅/取消订阅,如Loaded
/ Unloaded
,HandleCreated
/ HandleDestroyed
等。但是如果父母是一个简单的object
?
还有一些更具体的例子:嵌套的ViewModel,其中每个级别都是List<NextLevelVM>
,在任何级别都可以删除ViewModel,这是否意味着每个ViewModel必须实现IDisposable
(例如,如果它是正确的方式)它为列表中的每个项目调用Dispose
?我尝试使用弱事件,但doesn't go well。