Bud*_*dda 21 .net silverlight mvvm mvvm-light
在最新版本的MVVM-light(V3 SP1)中,ViewModel类中的"Dispose()"和"Dispose(bool)"方法都被标记
不再使用此方法,将在以后的版本中删除它.请改用ICleanup.Cleanup()
这是否意味着不能在从GalaSoft.MvvmLight.ViewModelBase派生的所有ViewModel类中实现IDisposable接口(并且必须覆盖清理)?
如果是,使用不能用于视图模型实例......可能我不明白的东西......请澄清......这种清理有什么好处?
谢谢.
LBu*_*ion 29
这个问题是历史性的.起初我认为强制所有虚拟机都是IDisposable是个好主意.但是,IDisposable有不同的意图:一旦VM被处置,预计(按照惯例)它将尽快被垃圾收集.在与朋友交谈之后,我意识到强制所有虚拟机都是IDisposable是一个错误.这就是我用ICleanup取代IDisposable的原因.ICleanup的目的是提供一种清理VM的方法(例如将其状态刷新到持久存储,关闭流等......)但不一定要尽快将它们垃圾收集起来.
没有什么能阻止您使VM实现IDisposable.我只是不想在ViewModelBase类中保留这个约束,这就是为什么在V4中删除这个接口的原因.
拥有ICleanup的好处是,您可以在ViewModelLocator.Cleanup()的一次调用中清理所有VM.这是VM开发人员的一个提示,即虚拟机应该考虑为其虚拟机提供清理方法.
那有意义吗?干杯,洛朗
| 归档时间: |
|
| 查看次数: |
14035 次 |
| 最近记录: |