繁体   English   中英

如何在wcf服务中获取Soap Envelope属性值

[英]how to get Soap Envelope attribute value in wcf service

如何在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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM