如何更改我的类以实现我的WCF服务的所需请求

时间:2015-03-05 08:39:19

标签: c# wcf

我有一个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
}

如何删除请求中的可选项。

有任何帮助吗? 提前致谢

1 个答案:

答案 0 :(得分:0)

不是继承Validation类,而是将Validation类作为Customer Data类中的一个Property来解决此要求。

public class CustomerData
{        
    public Validation validation { get; set; }        
    public string SSN { get; set; }
}