如何在wcf服务中获取SOAP xml属性值?
<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)
您的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>