WCF DataContract属性

时间:2015-11-26 10:28:16

标签: c# wcf

我注意到使用SoapUI我的OperationContract的DataContract(request)参数被认为是"可选"。 (我也测试了它,实际上我可以避免在我的wcf方法中传递请求,或者将其传递为null)

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:con="..." xmlns:data="...">
   <soapenv:Header/>
   <soapenv:Body>
      <con:MyMethod>
         <!--Optional:-->
         <con:request>
            <data:Id>?</data:Id>
         </con:request>
      </con:MyMethod>
   </soapenv:Body>
</soapenv:Envelope>

在DataMember上,与示例中的Id一样,我可以放置属性

[DataMember(IsRequired = true, EmitDefaultValue = false)]
public string Id {get; set;}

在这种情况下,如果我没有放入所有xml Id部分,或者我把它置为null我得到序列化异常作为响应,我的OperatationContract方法永远不会被调用,因此我可以肯定Id的实现我的方法!= null。

我不知道如何使用请求本身执行此操作。 如果请求为空,那么简单的解决方案是检入每个Operation方法,并且在这种情况下返回错误消息。我希望有一个更通用的解决方案

0 个答案:

没有答案