WCF - EmitDefaultValue без DataMemberAttribute - PullRequest
2 голосов
/ 28 мая 2011

Я использую серию DataContract без атрибутов (.NET 3.5 SP 1).

Я хочу изменить EmitDefaultValue на false для всех моих DataContracts.

Как мне этого добиться?

Ответы [ 2 ]

4 голосов
/ 28 мая 2011

Если вы хотите использовать EmitDefaultValue свойство в DataMemberAttribute, которое вы применяете к свойству, тогда вам придется применить DataContractAttribute к типу.

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

0 голосов
/ 29 мая 2011

Вы можете попробовать реализовать ISeriaizable интерфейс .

В этом случае DataContractSerializer вызовет ваш код для выполнения сопоставления, предоставив вам полный контроль.

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