【发布时间】:2012-01-28 17:36:57
【问题描述】:
我正在尝试为我的 Web 服务编写 XML 响应,但是我不知道如何使声明出现在响应中。
我的代码是这样的:
StringBuilder sBuilder = new StringBuilder();
using (XmlWriter writer = XmlWriter.Create(sBuilder))
{
writer.WriteStartDocument();
writer.WriteStartElement("ReportResponse");
Response.WriteXml(writer);
writer.WriteEndElement();
writer.WriteEndDocument();
}
var response = XElement.Parse(sBuilder.ToString());
return response;
Response 只是一个用于存储响应数据的 POCO。
我知道Save 方法包含声明,而ToString() 方法不包含。我需要用ToString() 写回我的声明。
我真的只想从我的 REST 服务返回自定义 XML,而不需要将字符串转换 100 次以返回有效 XML。这甚至有可能还是只是在旋转我的轮子?
【问题讨论】:
-
为什么不使用一个类,然后将其序列化为 XML?
-
我可以使用这种方法,但由于不同的原因我遇到了同样的问题。
-
如果您想要 XML 声明,为什么要返回
XElement而不是XDocument? -
另外,你为什么关心声明?如果您只是返回一个响应 object 并让 WCF 序列化程序将您的数据协定对象转换为 XML,那么您不必担心响应 XML 是否有效。如果您确实需要出现声明并且默认情况下不需要,那么您将在服务级别配置,而不是在每个方法上配置。
-
我们不使用默认编码,并且 xml 标头指定了这一点。
标签: c# xml serialization wcf-rest