首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何强制WCF使用所需的方法参数(minoccurs="1")自动生成WSDL?

如何强制WCF使用所需的方法参数(minoccurs="1")自动生成WSDL?
EN

Stack Overflow用户
提问于 2009-09-17 12:41:07
回答 2查看 11.7K关注 0票数 16

在使用WCF和OperationContracts时,我定义了以下方法:

代码语言:javascript
复制
    [OperationContract]
    [FaultContract(typeof(ValidationFault))]
    [FaultContract(typeof(FaultException<ExceptionDetail>))]
    int DoSomething(int someId, MyComplexType messageData);

当WCF运行时将其转换为WSDL时,它将以参数someId和messageData列出的minoccurs="0“结束(如果缺少这些参数,则会随后抛出运行时错误)。

如果我使用SoapUI生成一个代理,我会得到如下所示的结果:

代码语言:javascript
复制
  <com:DoSomething>
     <!--Optional-->
     <com:EventId>1</com:EventId>
     <!--Optional-->
     <com:myComplexType >
        <com:id>1</com:id>
     </com:myComplexType >
  </com:DoSomething>

MyComplexType中的id字段使用IsRequired="true“用DataMemeber属性进行标记,因此被公开为必填字段。

很明显,WSDL指定一个参数是可选的,但它不是可选的,这显然是一种误导,但是我看不到任何明显的方法来标记OperationContract来强制WCF根据需要识别和公开这些参数。

我有点困惑,似乎没有一个明显的方法来做到这一点(阅读intellisense / msdn / google)。否则我就会盲目忽略一些显而易见的东西。

有什么线索吗?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1438623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档