Ответ 1
Возвращает элемент XmlElement. Вам не нужно IXmlSerializable. Вам не нужен класс-оболочка.
пример сервисного интерфейса:
namespace Cheeso.Samples.Webservices._2009Jun01
{
[ServiceContract(Namespace="urn:Cheeso.Samples.Webservices" )]
public interface IWebGetService
{
[OperationContract]
[WebGet(
BodyStyle = WebMessageBodyStyle.Bare,
RequestFormat = WebMessageFormat.Xml,
ResponseFormat = WebMessageFormat.Xml,
UriTemplate = "/Greet/{greeting}")]
XmlElement Greet(String greeting);
}
}
:
namespace Cheeso.Samples.Webservices._2009Jun01
{
[ServiceBehavior(Name="WcfWebGetService",
Namespace="urn:Cheeso.Samples.WebServices",
IncludeExceptionDetailInFaults=true)]
public class WcfWebGetService : IWebGetService
{
public XmlElement Greet (String greeting)
{
string rawXml = "<p>Stuff here</p>";
XmlDocument doc = new XmlDocument();
doc.Load(new System.IO.StringReader(rawXml));
return doc.DocumentElement;
}
}
}
См. также этот похожий вопрос, но без зависания WebGet:
serializing-generic-xml-data-across-wcf-web-service-requests.