[.net] svcutil.exe - 代理生成不允許為空的字段



Answers

如果SVCUtil不起作用,請不要使用SVCUtil。 如果服務不是很複雜,可以嘗試手動編寫服務接口,並使用ChannelFactory <>創建代理。

Question

我試圖通過使用svcutil.exe創建WCF代理來使用WSDL指定的Web服務,但是WSDL指定某些操作的參數是可選的(minOccurs =“0”),例如:

<xs:element minOccurs="0" maxOccurs="1" name="meetingId" type="xs:int" /> 

不幸的是,生成的代理不允許我不指定值(參數不可為空),並且沒有“指定”字段作為指示代理不應該發送值的調用的一部分。

有沒有什麼辦法可以使用svcutil生成一個代理來允許我這樣做?

(在一個方面,我注意到通過我的研究,其他人能夠正確使用“添加服務引用”功能生成這些額外的“指定”字段,但無論出於什麼原因,Visual Studio似乎並不想生成代理我添加了參考(事後沒有發生))

WSDL文件 生成的代理

使用的命令:svcutil http://sas-int.elluminate.com/site/external/adapter/default/v1/webservice.wsdl / internal /n:*,Elluminate.WebService.WebServiceProxy /o:WebServiceProxy.cs / config: App.config / nologo






Links