Web Service 服务端参数的名称、顺序调整影响调用端吗?

作者:vkvi 来源:ITPOW(原创) 日期:2020-2-19

服务端提供 WebService 服务,假设客户端也引用了,程序一切就位了。

现在服务端改了方法的参数位置,客户端不变,结果怎样?

首先要说明的是,能够正常运行。

开始程序的样子:

后来程序的样子:

程序运行出来,结果是一样的。

虽然 Visual Studio 中 Web Service 的调用虽然形式上很像调用本地方法,但是本质上它还是 POST 形式,那么服务端取 p2 参数的时候,类似于 Request.Form["p2"](虽然不是这么简单,但是类似),所以我们可以把程序理解为:

你说把第一行和第二行,换个位置,会影响程序运行吗?肯定不会。

那么我们改参数名呢?

肯定有影响,同样看原理代码:

客户端只传了 p1、p2 过来,没有 p3,当然就有影响了。

那能正常运行吗?

能!继续上述示例:

  • 如果 p3 是 string,由于客户端没传值过来,那么它就是默认值 null。
  • 如果 p3 是 bool,由于客户端没传值过来,那么它就是默认值 false。
  • 如果 p3 是 int,由于客户端没传值过来,那么它就是默认值 0。
  • 如果 p3 是 DateTime,由于客户端没传值过来,那么它就是默认值:0001-01-01 00:00:00
  • 如果 p3 是 bool?、int?、DateTime?,由于客户端没传值过来,那么它的值就是:null。
相关文章