В последней версии MVVM-света (V3 SP1) оба "Располагают ()", и "Располагают (bool)" методы в классе ViewModel, отмечены
Не используйте этот метод больше, он будет удален в будущей версии. Используйте ICleanup. Очистка () вместо этого
Делает это означает, что интерфейс IDisposable не должен быть реализован во всех классах ViewModel, которые получены из GalaSoft. MvvmLight. ViewModelBase (и очистка должен быть overrided)?
Если да, использование не может использоваться для образцовых представлением экземпляров... Вероятно, я не понял что-то... Разъяснитесь... Каковы преимущества такой чистки?
Спасибо.
Вопрос исторический. Сначала я думал, что будет хорошей идеей заставить все виртуальные машины быть IDisposable. Однако IDisposable имеет другое назначение: Как только ВМ утилизируется, ожидается (по соглашению), что она будет собрана как можно скорее. Поговорив с друзьями, я понял, что заставлять все ВМ быть IDisposable было ошибкой. Поэтому я заменил IDisposable на ICleanup. Цель ICleanup - предоставить способ очистки ВМ (например, сброс их состояния в постоянное хранилище, закрытие потоков и т.д.), но не обязательно таким образом, чтобы они были собраны как можно скорее.
Ничто не мешает вам заставить ваши ВМ реализовать IDisposable. Я просто не хотел сохранять это ограничение в классе ViewModelBase, поэтому этот интерфейс будет удален в V4.
Преимущество наличия ICleanup заключается в том, что вы можете очистить все ваши ВМ за один вызов ViewModelLocator.Cleanup(). Это подсказка разработчикам ВМ, говорящая о том, что ВМ должны подумать о предоставлении метода очистки для своих ВМ.
Имеет ли это смысл? Спасибо, Laurent