Во времена сериализации 2.0 я мог создать сериализованную версию объекта, которая привела бы к следующему примеру:
<transactionMessage messageDate="1/1/2001 11:00PM" messageId="abc123">
<transaction property1="Value" property2="value2" />
</transactionMessage>
Я бы сделал это с помощью атрибута Serializable () и затем добавил бы атрибуты XmlElement к своим элементам. Когда я использую атрибуты DataContract / DataMember, я получаю что-то похожее на это:
<transactionMessage>
<messageDate>1/1/2001 11:00PM</messageDate>
<messageId>abc123</mesageId>
<transaction>
<property1>Value</property1>
<property2>Valu2</property2>
</transaction>
</transactionMessage>
Обычно я бы не заботился о том, чтобы XML создавался за кулисами, но эта система будет взаимодействовать с несколькими внешними клиентами, которые уже общаются с другой системой (основанной на стиле сериализации 2.0) и я хочу сохранить структура похожа, но вносит дополнительные улучшения WCF.
Как я могу сказать атрибуту DataMember, чтобы по существу сделать форматирование более похожим на первый пример с атрибутами вместо элементов для всего?