WCF XElement响应如何包括XML声明?
题
我有一个正在返回Xlement的WCF服务,这很好,但是我希望它在响应中包括XML声明:
<?xml version="1.0" encoding="utf-8"?>
客户端不是我可以更改的东西,并且报告了“结果不是XML”,我的HTTP结果的响应唯一其他区别是我的WCF服务的内容类型:
Content-Type: application/xml; charset=utf-8
VS.
Content-Type: text/xml; charset=utf-8
我认为“结果不是XML”是由缺失的XML声明引起的。如何将XML声明添加到XElement响应中?我认为MessageFormatter可能可以解决此问题,但是我不知道从哪里开始。
解决方案
看 Xdocument类概述 对于如何将XML声明添加到输出中的快速示例。
尽管我必须同意@john,但除非客户手动将XML验证为文本(这是一件愚蠢的事情,但我已经看到它已经完成了),否则XML声明丢失的声明不太可能是问题。缺少XML声明的文本不得有效XML。
如果客户端是.NET客户端,则 启用WCF消息记录 并验证客户收到的内容。如果客户端不是.NET客户端,请使用Netmon或Wireshark检查流量以验证有效载荷。
不隶属于 StackOverflow