Стандарты возврата XML RESTful WCF Webservice - PullRequest
3 голосов
/ 17 августа 2011

Я создал веб-службу RESTful WCF, и возвращаемое содержимое, будь то XML, JSON, простой текст и т. Д., Автоматически переносится в корневой элемент XML:

<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">.....content.....</string>

Этостандартное поведение?Также есть настройка, которая может отключить это?

1 Ответ

5 голосов
/ 17 августа 2011

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

Если вы не хотите, чтобы данные были перенесены, вы можете перейти в необработанный режим, вернув поток (подробнее см. http://blogs.msdn.com/b/carlosfigueira/archive/2008/04/17/wcf-raw-programming-model-web.aspx).). Если вы все еще хотите вернуть тип CLR, но хотите контролировать Формат сериализации, вы можете создать контракт данных для использования или создать тип, украшенный атрибутами сериализации XML (XmlElementAttribute, XmlTextAttribute, XmlAttributeAttribute и т. д.) и пометить операцию (или сам контракт) с помощью XmlSerializerFormatAttribute.

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