Я создаю xsd на основе документации клиента, и все xsd имеют атрибуты. Я использовал xsd.exe для создания классов из xsd, но я прочитал, что атрибуты не поддерживаются для DataContractSerializer. Почему бы и нет? Означает ли это, что у меня может быть файл soap+xml только с элементами? Это невозможно, потому что я не создаю запросы. Есть ли способ указать svcutil для распознавания атрибутов?
Почему атрибуты не поддерживаются DataContractSerializer?
comment
Вы только что ответили на свой вопрос.
- person John Saunders   schedule 20.05.2011
comment
@Джон, как? Я не понимаю, почему они не будут поддерживаться.
- person Xaisoft   schedule 20.05.2011
Ответы (1)
DataContractSerializer был создан с учетом философии «сначала код» — он хорошо сопоставляется с большинством языков программирования (записи, списки) и не обрабатывает все конструкции XML (такие как атрибуты или неупорядоченные элементы, например) по соображениям производительности.
WCF (svcutil) по-прежнему поддерживает использование XmlSerializer, который может обрабатывать AFAIK все конструкции XML. svcutil должен создать контракт с помощью XmlSerializer, если DataContractSerializer не может его обработать.
person
carlosfigueira
schedule
20.05.2011
у вас есть пример того, как указать svcutil для использования XmlSerializer?
- person Xaisoft; 20.05.2011
Это зависит от варианта, который вы используете svcutil. Например, при создании прокси-кода можно указать svcutil /serializer:XmlSerializer. свкутил /? даст вам другие обычаи.
- person carlosfigueira; 20.05.2011
Большой. Спасибо, Карлос. Забавно, что вы ответили на это. Я только что пришел из вашего блога, прежде чем я пришел сюда.
- person Xaisoft; 20.05.2011