我想通過使用svcutil.exe創建WCF代理來使用WSDL指定的Web服務,但WSDL指定某些操作的參數是可選的的minOccurs =「0」),例如:svcutil.exe - 代理生成不允許爲空字段
<xs:element minOccurs="0" maxOccurs="1" name="meetingId" type="xs:int" />
不幸的是,生成的代理不允許我到未指定的值(參數不可爲空),並且不存在「特定」字段的一部分該呼叫指示代理不應發送值。
有什麼辦法可以使用svcutil來生成一個代理來允許我這樣做嗎? (在附註中,我注意到通過我的研究,其他人能夠使用「添加服務引用」功能正確地生成這些額外的「指定」字段,但無論出於什麼原因,Visual Studio似乎並不想要生成代理後我添加引用(事後沒有發生))
所用命令:SvcUtil工具http://sas-int.elluminate.com/site/external/adapter/default/v1/webservice.wsdl /內部/n:*,Elluminate.WebService.WebServiceProxy /o:WebServiceProxy.cs /配置:App.config/nologo
SvcUtil通常是一個PITA,我不使用它,但我的服務和WCF,所以我有更容易的任務。 – 2009-06-18 14:16:11
指定的屬性沒有生成是非常奇怪的......這是WCF處理選項值類型的方法。沒有svcutil提供的錯誤?如果不是,你可以向我們提供WSDL文件和生成的內容嗎? – Philippe 2009-06-18 15:17:28
當然,WSDL可在: http://sas-int.elluminate.com/site/external/adapter/default/v1/webservice.wsdl 我正在使用以下命令來生成代理: SvcUtil工具http://sas-int.elluminate.com/site/external/adapter/default/v1/webservice.wsdl /內部/n:*,Elluminate.WebService.WebServiceProxy /o:WebServiceProxy.cs /配置:. \ App.config中/ NOLOGO 這裏是會產生什麼: http://pastebin.com/m20688d39 謝謝! – David 2009-06-18 17:09:32