10
如何定義[OperationContract] [WebGet]方法來返回存儲在字符串中的XML,而不使用HTML編碼字符串?如何在WCF中爲[WebGet]方法發佈裸露的XML?
應用程序正在使用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 =「格」)])的名字,但我需要省略根標籤,如果在所有可能的。
我也試過[DataContract]而不是IXmlSerializable,但它似乎不太靈活。
謝謝!這是有效的,但是對XML進行反序列化並重新序列化它有缺點。效率不如我想,但至少它消除了根標籤。感謝您的選擇。 – 2009-06-01 20:47:12