Как я могу определить метод [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, но он выглядит менее гибким.