Я полностью понимаю причины, однако не понимаю, почему они не поддерживают обратные вызовы сериализации в Silverlight. Мне кажется, что в связи WCF - Silverlight я не могу инициализировать свой контракт данных, не взломав себя. Поэтому, если у меня был закрытый член в базовом классе для внутреннего использования (например, поведение отмены-повтора), я не могу использовать конструктор по умолчанию:
Stack<PropertyChange> UndoStack = new Stack<PropertyChange>();
Это просто не работает. Чтобы это работало, я должен написать что-то вроде этого:
Stack<PropertyChange> _UndoStack;
Stack<PropertyChange> UndoStack
{
get
{
return _UndoStack == null ? (_UndoStack = new Stack<PropertyChange>()) : _UndoStack;
}
}
Мне кажется, это обходной путь. У кого-нибудь есть идеи получше?