Как ответ WCE XElement может включать декларацию XML? - PullRequest
1 голос
/ 11 августа 2009

У меня есть служба WCF, которая возвращает XElement, все работает нормально, но я бы хотел включить декларацию XML в ответ:

<?xml version="1.0" encoding="utf-8"?>

Клиентская сторона - это не то, что я могу изменить, и она сообщает: «Результат - это не XML». Единственное другое различие между ответом на мой HTTP-результат - это тип содержимого моей службы WCF:

Content-Type: application/xml; charset=utf-8

против

Content-Type: text/xml; charset=utf-8

Я предполагаю, что "Результат не является XML" вызван отсутствующей декларацией XML. Как можно добавить декларацию XML к ответу XElement? Я думал, что MessageFormatter мог бы это исправить, однако я понятия не имею, с чего начать.

1 Ответ

0 голосов
/ 17 августа 2009

См. Обзор класса XDocument для быстрого примера того, как добавить объявление xml в ваш вывод.

Хотя я должен согласиться с @John, вряд ли проблема заключается в отсутствии объявления xml, если клиент вручную не проверяет XML как текст (что было бы глупо, но я видел, что это сделано) и при условии, что любой текст, в котором отсутствует объявление xml, не должен быть действительным xml.

Если клиент является клиентом .NET, включите ведение журнала сообщений WCF и проверьте, что получает клиент. Если клиент не является клиентом .NET, используйте Netmon или Wireshark для проверки трафика на предмет проверки полезной нагрузки.

...