2

WCf メソッドから xmlElement を返します。クライアントでサービス参照を行うと、同じメソッドが 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);}

何が起こっている ?

4

2 に答える 2

13

に行ってConfigure Service Reference確認するReuse types in referenced assemblies

次に、必要かどうか、またはSystem.Xml必要かどうかを確認しますXmlElementSystem.Xml.LinqXElement

この質問も参照してください

于 2012-09-09T08:19:19.603 に答える
1

何も問題はありません。クライアントは、どの .NET 型が使用されているかを認識せず、サービス参照は、任意の XML を返すことができることのみを通知します。XML を受け取り、XElement として提供します。これは組み込みの動作であり、より新しく快適な API のために MS によって選択されたと思います。XmlElement を返すメソッドが必要なのはなぜですか?

于 2010-09-18T12:31:16.473 に答える