Как ответ WCF XElement может включать XML-объявление?
Вопрос
У меня есть служба 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 мог бы исправить это, однако я понятия не имею, с чего начать.
Решение
Видишь Обзор класса XDocument для краткого примера того, как добавить XML-объявление к вашим выводам.
Хотя я должен согласиться с @John, маловероятно, что проблема заключается в отсутствующем объявлении xml, если только клиент вручную не проверяет XML как текст (что было бы глупо делать, но я видел, как это делается) и предполагает, что любой текст, в котором отсутствует объявление xml, не должен быть допустимым xml.
Если клиент является клиентом .NET, то включить ведение журнала сообщений WCF и проверьте, что получает клиент.Если клиент не является клиентом .NET, то используйте Netmon или Wireshark для проверки трафика на предмет проверки полезной нагрузки.