2016-03-05 60 views
2

如何獲取wcf服務中的SOAP xml屬性值?如何在wcf服務中獲得Soap Envelope屬性值

<ns3:NotifRQ Status="Commit" 
       xmlns:ns2="http://www.dddd.com/df/dd/" 
       xmlns:ns3="http://www.dd.org/OTA/"> 

     <ns3:rev>dfdfkkl</ns3:rev> 
     <ns3:change>dfdfkkl</ns3:change> 
    </ns3:NotifRQ> 

這是我現在有一個數據契約的代碼:

[DataContract(Name = "NotifRQ", Namespace = "http://www.dd.org/OTA/")] 
public class NotifRQ 
{ 
    [DataMember(Name = "Status")] 
    public string ResStatus; 
} 
+0

能否簡單介紹一下?你想要什麼?或者你想說什麼? –

+0

我需要獲得以上SOAP XML()屬性'狀態'值wcf – Mari

+0

如何在上述屬性中創建類wcf – Mari

回答

0

Status屬性需要一個字段或NotifRQ類的屬性,你需要指示WCF使用較少最佳XmlSerializer而不是DatacontractSerializer,如here所述。您可以通過在課堂上使用XmlSerializerFormat屬性來實現這一目標。

現在,您可以將XmlAttribute應用於您的類的字段或屬性,該字段或屬性獲取或設置xml元素上的屬性值。

創建和註釋你的類如下:

[DataContract(Namespace="http://www.dd.org/OTA/")] 
[XmlSerializerFormat] 
public class NotifRQ 
{ 

    [DataMember, XmlAttribute] 
    public string Status="Commit"; 

    [DataMember] 
    public string rev; 

    [DataMember] 
    public string change; 
} 

上面的類將寫入和讀取以下線格式:

<?xml version="1.0" encoding="utf-16"?> 
<NotifRQ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
     Status="Commit"> 
    <rev>foo</rev> 
</NotifRQ>