我有一个WCF服务,当使用此服务时,请求如下所示:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/" xmlns:fin="http://schemas.datacontract.org/2004/07/Test.Web.Service">
<soapenv:Header/>
<soapenv:Body>
<tem:CheckforActiveId>
<!--Optional:-->
<tem:customerData>
<!--Optional:-->
<fin:Password>test</fin:Password>
<!--Optional:-->
<fin:UserName>test</fin:UserName>
<!--Optional:-->
<fin:SSN>789654123</fin:SSN>
</tem:customerData>
</tem:CheckforActiveId>
</soapenv:Body>
</soapenv:Envelope>
我在这里使用的课程是
Validation.cs
[DataContract]
public class Validation
{
[DataMember]
public string UserName { get; set; }
[DataMember]
public string Password { get; set; }
}
CustomerData.cs
[DataContract]
public class CustomerData : Validation
{
[DataMember]
public string SSN { get; set; }
}
此处CustomerData类继承验证。
现在我想将我的请求类更改为这样。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/" xmlns:fin="http://schemas.datacontract.org/2004/07/Test.Web.Service">
<soapenv:Header/>
<soapenv:Body>
<tem:CheckforActiveId>
<!--Optional:-->
<tem:Validation>
<!--Optional:-->
<fin:Password>test</fin:Password>
<!--Optional:-->
<fin:UserName>test</fin:UserName>
</tem:Validation>
<tem:customerData>
<!--Optional:-->
<fin:SSN>789654123</fin:SSN>
</tem:customerData>
</tem:CheckforActiveId>
</soapenv:Body>
</soapenv:Envelope>
如何修改我的类看起来像这样。 我将我的方法称为
public bool CheckforActiveLOC(CustomerData customerData)
{
// some logic
}
如何删除请求中的可选项。
有任何帮助吗? 提前致谢
答案 0 :(得分:0)
不是继承Validation类,而是将Validation类作为Customer Data类中的一个Property来解决此要求。
public class CustomerData
{
public Validation validation { get; set; }
public string SSN { get; set; }
}