带有XElement返回类型的.net webservice

时间:2011-08-02 13:14:11

标签: c# web-services

有一种方法可以创建一个返回XElement类型参数的Web服务吗? 现在我正在使用XmlNode返回类型,但我想摆脱使用这个旧的xml库。

我正在使用它:

XDocument doc = new XDocument();
XElement xml = new XElement("produtos");
doc.Add(xml);

//...
var xmlDoc = new XmlDocument();
using (var xmlReader = doc.CreateReader())
{
    xmlDoc.Load(xmlReader);
}
return xmlDoc;

我无法弄清楚为什么webservice不能与XmlLinq lib一起使用

2 个答案:

答案 0 :(得分:1)

你应该可以这样做:

[ScriptMethod(ResponseFormat = ResponseFormat.Xml)]
public XElement GetSomething()
{
    return new XElement("Something");
}

答案 1 :(得分:0)

我使用扩展方法将XElement转换为XmlElement(根据@ Ocelot20的建议):

<System.Runtime.CompilerServices.Extension()> _
Public Function ToXmlElement(value As XElement) As XmlElement
    Dim xmlDoc = New XmlDocument()
    xmlDoc.LoadXml(value.ToString())
    Return xmlDoc.DocumentElement
End Function

似乎工作正常!