. Freezable является типом DependencyObject и поэтому использует свойство зависимости.система.Свойства вашего класса не обязательно должны быть свойствами зависимости, но использование свойств зависимости уменьшит объем кода, который вы должны написать, потому что класс Freezable был разработан с учетом свойств зависимости.Для получения дополнительной информации о системе свойств зависимостей см. Обзор свойств зависимостей.
Каждый подкласс Freezable должен переопределять метод CreateInstanceCore.Если ваш класс использует свойства зависимостей для всех своих данных, то вы закончили.
Если ваш класс содержит члены-данные свойств не зависимостей, вы также должны переопределить следующие методы:
Необходимо также соблюдать следующие правила для доступа и записи в элементы данных, которые не являются свойствами зависимостей:
В начале любого APIкоторый читает члены данных свойства не зависимости, вызовите метод ReadPreamble.
В начале любого API, который записывает члены данных свойства не зависимости, вызовите метод WritePreamble.(После того как вы вызвали WritePreamble в API, вам не нужно делать дополнительный вызов ReadPreamble, если вы также читаете члены-данные свойств, не зависящих от зависимостей.)
Вызовите метод WritePostscript перед выходом из методов, которые пишутк элементам данных свойств вне зависимости.
Если ваш класс содержит элементы данных со свойством не зависимости, которые являются объектами DependencyObject, вы также должны вызывать метод OnFreezablePropertyChanged каждый раз, когда вы изменяете их значения, даже если вы 'переустанавливать элемент на ноль.