Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

when WCF method returns XmlElement , the client sees XElement returned?

Tags:

xml

wcf

xelement

i return an xmlElement from a WCf method. when i do a service reference in the client, the same method is returning XElement instead of XmlElement. i tried everything: updating the service reference, making a new service reference, but it doesn't help.

This is my client:

ServiceReference1.BasicServiceClient basicWCfClient = new ServiceReference1.BasicServiceClient();
        XmlElement xmlelement =  basicWCfClient.GetData(5); 
        basicWCfClient.Close();

i get an error : "Cannot implicitly convert type 'System.Xml.Linq.XElement' to 'System.Xml.XmlElement'"

when the method in the server side:

 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;
     }

and the interface:

    [ServiceContract]
public interface IBasicService
{

    [OperationContract]       
    [WebGet(UriTemplate = "GetData?value={value}")] // Add support for HTTP GET Requests
    XmlElement GetData(int value);}

what is going on ?

like image 557
Rodniko Avatar asked Dec 04 '25 15:12

Rodniko


1 Answers

Go to Configure Service Reference and check Reuse types in referenced assemblies

Then check System.Xml if you want XmlElement or System.Xml.Linq if you want XElement

See also this question

like image 53
Simon_Weaver Avatar answered Dec 07 '25 04:12

Simon_Weaver