Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从ASP.net Web服务返回和发送数据_C#_Asp.net_Web Services - Fatal编程技术网

C# 从ASP.net Web服务返回和发送数据

C# 从ASP.net Web服务返回和发送数据,c#,asp.net,web-services,C#,Asp.net,Web Services,目前,我们有许多web服务,当我们向它们发送数据时,我们将其作为一个字符串发送,该字符串是一个XML块,web服务解析并执行一些工作 类似地,当我们需要来自web服务的数据时,我们将返回一个字符串,该字符串也是客户端应用程序解析的XML块 这样做有缺点吗。我们还应该返回序列化为xml的类型吗 JD在使用这种类型的Web服务时,我更喜欢序列化方法。但是,您可能会看到WCF,因为它比ASMX web服务提供了许多优势。在使用这种类型的web服务时,我更喜欢序列化方法。但是,您可能会看到WCF,因为它

目前,我们有许多web服务,当我们向它们发送数据时,我们将其作为一个字符串发送,该字符串是一个XML块,web服务解析并执行一些工作

类似地,当我们需要来自web服务的数据时,我们将返回一个字符串,该字符串也是客户端应用程序解析的XML块

这样做有缺点吗。我们还应该返回序列化为xml的类型吗


JD

在使用这种类型的Web服务时,我更喜欢序列化方法。但是,您可能会看到WCF,因为它比ASMX web服务提供了许多优势。

在使用这种类型的web服务时,我更喜欢序列化方法。但是,您可能会看到WCF,因为它比ASMX web服务提供了许多优势。

如果您将XML作为字符串发送并作为字符串返回,那么您也可以使用REST

webservices的全部要点是XML序列化和反序列化(封送/解封送)由您负责,因此只需传递复杂类型,或将请求对象作为输入并返回响应对象即可


无需任何努力就可以得到强类型。

如果将XML作为字符串发送并作为字符串返回,那么也可以使用REST

webservices的全部要点是XML序列化和反序列化(封送/解封送)由您负责,因此只需传递复杂类型,或将请求对象作为输入并返回响应对象即可


而且,您可以不费吹灰之力就获得强大的打字能力。

有几个缺点:

  • 为了调用web服务,客户机需要知道作为参数传递的XML的结构以及返回的XML的结构,这样才有意义
  • 您正在执行双重序列化/反序列化,这会影响性能

    • 有几个缺点:

      • 为了调用web服务,客户机需要知道作为参数传递的XML的结构以及返回的XML的结构,这样才有意义
      • 您正在执行双重序列化/反序列化,这会影响性能

      我以前为web服务as做过xml输入/输出方法。当我这样做的时候,是为了尝试参数传递的“”模型。总的来说,它运行得相当好,使得实现和修改变得相当容易

      我遵循的实现是为输入/输出xml创建模式,然后使用xsd生成用于序列化的类。因此,在我的web服务中,我只处理强类型对象,并将其序列化到xml中/从xml中序列化,以处理实际的请求和响应

      一些专业人士

    • 通过在参数模式中创建新版本的名称空间,可以轻松修订入站和出站参数。因此,您永远不必更改客户机调用的web方法(他们只需更改处理您的输入和输出的方式,无论如何都必须这样做)
    • 有助于向后兼容-您发送1.0名称空间请求时,通常会得到1.0名称空间响应
    • 您可以根据模式验证输入xml,并在对象类型中添加其他验证
    • 一些缺点

    • 与COM有相同的修订问题(您可以很容易地得到一个点,即您有许多不同版本的web服务参数浮动,什么时候可以完全消除它们?)
    • 序列化可能会影响性能。对于我的web服务来说,这并不是一个巨大的影响,但您的web服务可能与我的web服务具有不同的吞吐量/需求
      我以前为web服务做过xml输入/输出方法。当我这样做的时候,是为了尝试参数传递的“”模型。总的来说,它运行得相当好,使得实现和修改变得相当容易

      我遵循的实现是为输入/输出xml创建模式,然后使用xsd生成用于序列化的类。因此,在我的web服务中,我只处理强类型对象,并将其序列化到xml中/从xml中序列化,以处理实际的请求和响应

      一些专业人士

    • 通过在参数模式中创建新版本的名称空间,可以轻松修订入站和出站参数。因此,您永远不必更改客户机调用的web方法(他们只需更改处理您的输入和输出的方式,无论如何都必须这样做)
    • 有助于向后兼容-您发送1.0名称空间请求时,通常会得到1.0名称空间响应
    • 您可以根据模式验证输入xml,并在对象类型中添加其他验证
    • 一些缺点

    • 与COM有相同的修订问题(您可以很容易地得到一个点,即您有许多不同版本的web服务参数浮动,什么时候可以完全消除它们?)
    • 序列化可能会影响性能。对于我的web服务来说,这并不是一个巨大的影响,但您的web服务可能与我的web服务具有不同的吞吐量/需求
      与基于SOAP的web服务不同,RESTful web API没有“官方”标准。这是因为REST是一种体系结构样式,而SOAP是一种协议。尽管REST本身不是一个标准,但大多数RESTful实现都使用HTTP、URI、JSON和XML等标准。

      与基于SOAP的web服务不同,RESTful web API没有“官方”标准。这是因为REST是一种体系结构样式,而SOAP是一种协议。尽管REST本身不是一个标准,但大多数RESTful实现都使用HTTP、URI、JSON和XML等标准。