【发布时间】:2010-10-30 11:06:09
【问题描述】:
如何定义 [OperationContract] [WebGet] 方法来返回存储在字符串中的 XML,而不用 HTML 编码字符串?
应用程序正在使用 WCF 服务返回已存储为字符串的 XML/XHTML 内容。 XML 不对应于通过 [DataContract] 的任何特定类。它旨在由 XSLT 使用。
[OperationContract]
[WebGet]
public XmlContent GetContent()
{
return new XmlContent("<p>given content</p>");
}
我有这门课:
[XmlRoot]
public class XmlContent : IXmlSerializable
{
public XmlContent(string content)
{
this.Content = content;
}
public string Content { get; set; }
#region IXmlSerializable Members
public System.Xml.Schema.XmlSchema GetSchema()
{
return null;
}
public void ReadXml(XmlReader reader)
{
throw new NotImplementedException();
}
public void WriteXml(XmlWriter writer)
{
writer.WriteRaw(this.Content);
}
#endregion
}
但是当序列化时,有一个根标签来包装给定的内容。
<XmlContent>
<p>given content</p>
</XmlContent>
我知道如何更改根标记的名称 ([XmlRoot(ElementName = "div")]),但如果可能的话,我需要省略根标记。
我也尝试过 [DataContract] 而不是 IXmlSerializable,但它似乎不太灵活。
【问题讨论】:
标签: .net wcf xml-serialization