我有一个ASP.NET Web服务。此Web服务工作正常。但是,WSDL列出了一些参数为可选参数(minoccurs = 0),而其他参数则为非可选参数。一些可选参数实际上不是可选参数,其他标记为非可选参数的实际上是可选参数。我想解决此问题,但找不到该信息的来源。
在我看来,所有原始类型(int,boolean等)都是非可选的,所有其他参数都标记为可选。但是,我找不到可以更改此位置的位置。如果请求中缺少原始值,我想为其指定默认值,并指定实际上是可选的非原始参数。我在哪里做?
最佳答案
我假设当您说ASP.net Web服务时,您正在创建具有ASMX扩展名的Web服务。我认为在这种情况下,所有可为空的类型都变为可选,而不可为空的类型变为非可选。
您也许可以手动编辑生成的WSDL文件。但是,如果重新生成了wsdl,则必须重做该工作。
我建议您使用basicHttpBinding切换到WCF(除了服务的名称之外,您的客户端应该不会注意到差异)。
使用WCF,您可以简单地根据需要标记数据契约中的参数:
[DataMember(IsRequired="false")]
关于asp.net - ASP.NET Web服务中的可选参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/995521/