WSDL.exe proxy client code 多出來的Specified 參數
我拿到了一個wsdl檔, 順利的使用wsdl產生代碼, 但我在引用時卻發現本來只有1個參數的web method, 卻變成了2個?! 第2個是第1個名字加上 "Specified"
好加在網路上有人遇過:
本篇只是隨手整理成中文內容.
因為舊版的.NET Framework 並沒有Nullable的 value type, 所以當wsdl描述是可null的value type時, wsdl.exe 就會另外加一個參數來處理null.
如下方 debug 參數的minOccurs="0" 時, 代表可以 null
1: <xs:element name="helloBoolean">
2: <xs:complexType>
3: <xs:sequence>
4: <xs:element minOccurs="0" name="debug" type="xs:boolean"/>
5: </xs:sequence>
6: </xs:complexType>
7: </xs:element>
Web Client 必須這樣子呼 :
1: new TestService().helloBoolean( true , true );
或
1: new TestService().helloBoolean( true, false ); // nullable
PS: .NET Framework 2.0 真是一個可以媲美Windows XP的成功產品, 太多客戶停留在這裡了...