Очистка по сравнению с располагает (bool) в MVVM-свете

В последней версии MVVM-света (V3 SP1) оба "Располагают ()", и "Располагают (bool)" методы в классе ViewModel, отмечены

Не используйте этот метод больше, он будет удален в будущей версии. Используйте ICleanup. Очистка () вместо этого

Делает это означает, что интерфейс IDisposable не должен быть реализован во всех классах ViewModel, которые получены из GalaSoft. MvvmLight. ViewModelBase (и очистка должен быть overrided)?

Если да, использование не может использоваться для образцовых представлением экземпляров... Вероятно, я не понял что-то... Разъяснитесь... Каковы преимущества такой чистки?

Спасибо.

21
задан jv42 8 June 2011 в 14:29
поделиться

1 ответ

Вопрос исторический. Сначала я думал, что будет хорошей идеей заставить все виртуальные машины быть IDisposable. Однако IDisposable имеет другое назначение: Как только ВМ утилизируется, ожидается (по соглашению), что она будет собрана как можно скорее. Поговорив с друзьями, я понял, что заставлять все ВМ быть IDisposable было ошибкой. Поэтому я заменил IDisposable на ICleanup. Цель ICleanup - предоставить способ очистки ВМ (например, сброс их состояния в постоянное хранилище, закрытие потоков и т.д.), но не обязательно таким образом, чтобы они были собраны как можно скорее.

Ничто не мешает вам заставить ваши ВМ реализовать IDisposable. Я просто не хотел сохранять это ограничение в классе ViewModelBase, поэтому этот интерфейс будет удален в V4.

Преимущество наличия ICleanup заключается в том, что вы можете очистить все ваши ВМ за один вызов ViewModelLocator.Cleanup(). Это подсказка разработчикам ВМ, говорящая о том, что ВМ должны подумать о предоставлении метода очистки для своих ВМ.

Имеет ли это смысл? Спасибо, Laurent

29
ответ дан 29 November 2019 в 21:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: