C# 如何使用在dotne core中返回数据集的WCF方法?

C# 如何使用在dotne core中返回数据集的WCF方法?,c#,.net,wcf,.net-core,C#,.net,Wcf,.net Core,我必须与外部的WCF服务,这是在dotnet框架写我的项目是dotnet核心。此服务中的一个方法返回数据集作为结果。 当我在dotnet framework测试项目中使用vs2017创建此服务的客户端时,有一个具有此签名的方法: 任务SomeMethodAsync(int[]args) 但当我在dotnet core应用程序中执行创建soap客户端的相同步骤时,此签名更改为: 任务SomeMethodAsync(int[]args) 哪个SomeMethodResponse仅具有类型为Array

我必须与外部的WCF服务,这是在dotnet框架写我的项目是dotnet核心。此服务中的一个方法返回数据集作为结果。 当我在dotnet framework测试项目中使用vs2017创建此服务的客户端时,有一个具有此签名的方法:

任务SomeMethodAsync(int[]args)

但当我在dotnet core应用程序中执行创建soap客户端的相同步骤时,此签名更改为:

任务SomeMethodAsync(int[]args)

哪个SomeMethodResponse仅具有类型为ArrayOfXElement结果属性。在这个结果中我们有两个项目。一个用于结果的模式。另一个是主要数据

  • 现在我想知道有没有办法生成相同的签名
  • 如果答案是如何将此结果转换为可处理的类型,如列表或数据集
      我找到了另一种解决方案。我通过以下步骤生成类:

      • 将响应的架构部分复制到名为file.xsd的文件
      • 打开visual studio命令提示符并执行此命令xsd file.xsd/classes
      • 将生成的类添加到我的解决方案中
      然后使用以下代码将结果的第二部分解析为生成的类:

      XSDGeneratedClass cls = new XSDGeneratedClass();
      XmlSerializer xsr = new XmlSerializer(typeof(XSDGeneratedClass));
      var nodeString = dataset.openTempfllistResult.Nodes[1].LastNode.ToString();
      cls = (NewDataSet)xsr.Deserialize(new MemoryStream(Encoding.UTF8.GetBytes(nodeString)));
      

      cls现在充满了服务数据。

      我找到了另一种解决方案。我通过以下步骤生成类:

      • 将响应的架构部分复制到名为file.xsd的文件
      • 打开visual studio命令提示符并执行此命令xsd file.xsd/classes
      • 将生成的类添加到我的解决方案中
      然后使用以下代码将结果的第二部分解析为生成的类:

      XSDGeneratedClass cls = new XSDGeneratedClass();
      XmlSerializer xsr = new XmlSerializer(typeof(XSDGeneratedClass));
      var nodeString = dataset.openTempfllistResult.Nodes[1].LastNode.ToString();
      cls = (NewDataSet)xsr.Deserialize(new MemoryStream(Encoding.UTF8.GetBytes(nodeString)));
      
      cls现在充满了服务数据