如何在 WCF 服务中获取肥皂信封属性值
本文关键字:肥皂 属性 获取 WCF 服务 | 更新日期: 2023-09-27 18:37:25
如何在 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;
}
Status
属性必须是NotifRQ
类的字段或属性,并且需要指示 WCF 使用不太理想的 XmlSerializer 而不是 DatacontractSerializer,如此处所述。您可以通过在类上使用 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>