我從WCf方法返回一個xmlElement。 當我在客戶端做服務引用時,同樣的方法是返回XElement而不是XmlElement。 我嘗試了一切:更新服務參考,製作新的服務參考,但它沒有幫助。當WCF方法返回XmlElement時,客戶端看到XElement返回?
這是我的客戶:
ServiceReference1.BasicServiceClient basicWCfClient = new ServiceReference1.BasicServiceClient();
XmlElement xmlelement = basicWCfClient.GetData(5);
basicWCfClient.Close();
我得到一個錯誤: 「無法隱式轉換類型 'System.Xml.Linq.XElement' 到 'System.Xml.XmlElement'」
時在服務器端的方法,包括:
public XmlElement GetData(int value)
{
XmlDocument xmldoc = new XmlDocument();
xmldoc.LoadXml("<msg><node1>Hello</node1><node2>World</node2><request_params><mynode>More</mynode></request_params></msg>");
XmlElement xmlElement = xmldoc.DocumentElement;
return xmlElement;
}
和接口:
[ServiceContract]
public interface IBasicService
{
[OperationContract]
[WebGet(UriTemplate = "GetData?value={value}")] // Add support for HTTP GET Requests
XmlElement GetData(int value);}
是怎麼回事?
我的測試客戶端在Framework 3.5,但其他公司確實編譯(真正的客戶端)不會有Framework 3.5,它與框架2.0一起工作,並且它不會識別XElement,因爲XElement是Framework 3.5。但是第二個想法是,當真正的客戶端(使用框架2.0環境)創建服務引用時,我的WCF服務會返回XmlElement嗎?它不會返回Xelement嗎? – Rodniko 2010-09-18 12:54:53
只是在框架2.0中嘗試了與VS2005相同的參考,它確實返回Xmlelement。框架環境是問題,謝謝! – Rodniko 2010-09-18 13:00:01
首先,當您使用.NET 2.0中的服務時,您將無法使用添加服務引用,因爲.NET 2.0不支持WCF。你將不得不使用添加web引用,它將只使用.NET 2.0類型。 – 2010-09-18 13:00:16