Установить атрибуты DataMember DataContract во время выполнения? - PullRequest
1 голос
/ 03 апреля 2009

возможно ли динамически устанавливать атрибуты datameontract datamember во время выполнения? По сути, мне нужно прочитать в сериализованных экземплярах класса, который содержал атрибуты DataMemeber в двух свойствах во время сериализации, но у текущей «версии» их больше нет, но мне нужно перенести старый набор данных в эти свойства переходим к новой обработке ... ооо, что мне отчасти требуется, чтобы позволить десериализатору datacontract считывать данные, включающие эти «старые» значения, и повторно сериализовать их с новой конфигурацией (поскольку данные этих свойств теперь сохраняются и обрабатываются совсем по другому).

Возможно ли это?

Приветствия и спасибо. -Jörg

1 Ответ

0 голосов
/ 03 апреля 2009

Вы можете указать типы / известные типы, но не информацию об участнике AFAIK. XmlSerializer немного более простительно ... есть ли вероятность, что старые типы использовали атрибуты xml? (а не атрибуты контракта с данными).

Другой вариант - предоставить IDataContractSurrogate - но это не тривиально.

Есть ли шанс, что вы можете украсить класс старыми атрибутами и атрибутами (и т. Д.) Для любого нового используемого вами механизма?

Если данные простые (т.е. только один или два типа в простых отношениях), вы можете использовать параллельный набор классов для десериализации, затем скопировать данные (свойство-свойство-свойство и т. Д. ) в новую структуру данных и повторно сериализовать. С усложнением модели это становится сложнее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...