【发布时间】:2010-11-03 20:07:52
【问题描述】:
我正在尝试通过使用 svcutil.exe 创建 WCF 代理来使用使用 WSDL 指定的 Web 服务,但 WSDL 指定某些操作具有可选参数(minOccurs="0"),例如:
<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 /internal /n:*,Elluminate.WebService.WebServiceProxy /o:WebServiceProxy.cs /config:App.config /nologo
【问题讨论】:
-
SvcUtil 通常是 PITA,我不使用它,但我的服务和 WCF 所以我的任务要容易得多。
-
没有生成指定的属性很奇怪......这是处理可选值类型的WCF方式。 svcutil 没有提供错误?如果没有,能否提供给我们 WSDL 文件以及生成的内容?
-
当然,WSDL 位于:sas-int.elluminate.com/site/external/adapter/default/v1/… 我正在使用以下命令生成代理:svcutil sas-int.elluminate.com/site/external/adapter/default/v1/… /internal /n:*,Elluminate.WebService.WebServiceProxy /o: WebServiceProxy.cs /config:..\App.config /nologo 下面是生成的:pastebin.com/m20688d39 谢谢!
标签: .net wcf wsdl nullable svcutil.exe