Ben*_*ing 6 c# xml serialization wcf-rest
我正在尝试为我的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;
Run Code Online (Sandbox Code Playgroud)
响应只是存储响应数据的POCO.
我知道该Save方法包括声明而ToString()方法没有.我需要写回我的声明ToString().
我真的只想从我的REST服务返回自定义XML而不将我的字符串强制转换100次以返回有效的XML.这甚至可能还是只是旋转我的车轮?
如果你想包含xml声明,你可以这样做:
XDocument xdoc = XDocument.Parse(xmlString);
StringBuilder builder = new StringBuilder();
using (TextWriter writer = new StringWriter(builder))
{
xdoc.Save(writer);
}
Console.WriteLine(builder);
Run Code Online (Sandbox Code Playgroud)
更新:我注意到 StringWriter 破坏了编码。因此,还有一种选择是这样做:
string docWithDeclaration = xdoc.Declaration + xdoc.ToString();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1864 次 |
| 最近记录: |