WSDL.exe proxy client code 多出来的Specified 参数

WSDL.exe proxy client code 多出来的Specified 参数


我拿到了一个wsdl档, 顺利的使用wsdl产生代码, 但我在引用时却发现本来只有1个参数的web method, 却变成了2个?!  第2个是第1个名字加上 "Specified"

好加在网络上有人遇过:

http://stackoverflow.com/questions/1184245/vs2003-web-reference-for-a-wcf-service-has-extra-idspecified-parameter

本篇只是随手整理成中文内容.

因为旧版的.NET Framework 并没有Nullable的 value type, 所以当wsdl描述是可null的value type时, wsdl.exe 就会另外加一个参数来处理null.

如下方 debug 参数的minOccurs="0" 时, 代表可以 null

   1:              
   2:                  
   3:                      
   4:                          
   5:                      
   6:                  
   7:              

Web Client 必须这样子呼 :

   1:  new TestService().helloBoolean( true , true );


   1:  new TestService().helloBoolean( true, false ); // nullable

PS: .NET Framework 2.0 真是一个可以媲美Windows XP的成功产品, 太多客户停留在这里了...