2011-05-20 2 views
3

Я создаю xsd на основе документации клиента и всех атрибутов xsd. Я использую xsd.exe для генерации классов из xsd, но я читал, что эти атрибуты не поддерживаются для DataContractSerializer. Почему нет? Означает ли это, что у меня может быть только файл soap + xml с просто элементами? Это невозможно, потому что я не создаю запросы. Есть ли способ указать svcutil для распознавания атрибутов?Почему атрибуты не поддерживаются DataContractSerializer?

+0

Вы просто ответили на свой вопрос. –

+0

@ Джон, как? Я не понимаю, почему они не будут поддерживаться. – Xaisoft

+0

Потому что Microsoft так сказала? –

ответ

5

DataContractSerializer был создан с учетом философии «первого кода» - он хорошо отображает большинство языков программирования (записи, списки) и не обрабатывает все XML-конструкции (такие как атрибуты или внешние например, элементы порядка) по соображениям производительности.

WCF (svcutil) по-прежнему поддерживает использование XmlSerializer, который может обрабатывать AFAIK все XML-конструкции. svcutil должен создать контракт с помощью XmlSerializer, если DataContractSerializer не сможет его обработать.

+0

У вас есть пример того, как указать svcutil для использования XmlSerializer? – Xaisoft

+0

Это зависит от опции, которую вы используете svcutil. Например, при создании прокси-кода вы можете указать svcutil/serializer: XmlSerializer. svcutil /? даст вам другое использование. – carlosfigueira

+0

Отлично. Спасибо Карлосу. Иронично, что вы ответили на это. Я только что пришел из вашего блога, прежде чем приехал сюда. – Xaisoft

Смежные вопросы