Die*_*eko 8 asp.net wcf soapui datamember operationcontract
我[DataMember(IsRequired=true)]用来制作所需的DataContract属性.对于OperationContract参数似乎没有一些IsRequired.如何使它们成为必需而不允许null?
在SoapUI工具中,OperationContract中的参数似乎是可选的.虽然这绝不是可选的或null.
WCF接口:
[OperationContract]
IsClientUpdateRequiredResult IsClientUpdateRequired(IsClientUpdateRequiredInput versie);
...
[DataContract]
public class IsClientUpdateRequiredInput
{
[DataMember(IsRequired=true)]
public string clientName { get; set; }
[DataMember(IsRequired = true, Order = 0)]
public int major { get; set; }
[DataMember(IsRequired = true, Order = 1)]
public int minor { get; set; }
[DataMember(IsRequired = true, Order = 2)]
public int build { get; set; }
[DataMember(IsRequired = true, Order = 3)]
public int revision { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
soapUI请求模板:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:tem="http://tempuri.org/" xmlns:pir="http://schemas.datacontract.org/2004/07/PirIS.Web.WCF.InputClasses">
<soap:Header/>
<soap:Body>
<tem:IsClientUpdateRequired>
<!--Optional:-->
<tem:versie>
<pir:clientName>?</pir:clientName>
<pir:major>?</pir:major>
<pir:minor>?</pir:minor>
<pir:build>?</pir:build>
<pir:revision>?</pir:revision>
</tem:versie>
</tem:IsClientUpdateRequired>
</soap:Body>
</soap:Envelope>
Run Code Online (Sandbox Code Playgroud)
不幸的是,使用默认的 WCF 无法完成此操作。存在一些解决方法:
RequiredParametersBehavior属性但是,您可以实现一个FaultContract,并在输入参数为空时抛出错误。
| 归档时间: |
|
| 查看次数: |
8623 次 |
| 最近记录: |