Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何反序列化WCF服务中定义的类类型的客户端xml_C#_Xml_Wcf - Fatal编程技术网

C# 如何反序列化WCF服务中定义的类类型的客户端xml

C# 如何反序列化WCF服务中定义的类类型的客户端xml,c#,xml,wcf,C#,Xml,Wcf,我有一个简单的xml,它只有一个父节点。我想将这个xml去消毒为一个类类型,这个类是在wcf服务中定义的。该类是使用xsd.exe从xml生成的 目的是以类对象形式而不是xml向wcf服务发送信息 但是,当我在客户端使用该类时,所有属性名称都被更改,并附加了一些后缀。并且所有属性都设置为null 我的XML看起来像- <NafDetails xmlns="http://schemas.datacontract.org/2004/07/....Service.Contract">

我有一个简单的xml,它只有一个父节点。我想将这个xml去消毒为一个类类型,这个类是在wcf服务中定义的。该类是使用xsd.exe从xml生成的

目的是以类对象形式而不是xml向wcf服务发送信息

但是,当我在客户端使用该类时,所有属性名称都被更改,并附加了一些后缀。并且所有属性都设置为null

我的XML看起来像-

<NafDetails xmlns="http://schemas.datacontract.org/2004/07/....Service.Contract">
  <NafInfo_NafNumber></NafInfo_NafNumber>
   <NafInfo_CFAcctNum></NafInfo_CFAcctNum>
   <NafInfo_RepNum></NafInfo_RepNum>

  <NafInfo_FASIRIA>0</NafInfo_FASIRIA>
  <NafInfo_OutsideRIA>0</NafInfo_OutsideRIA>
</NafDetails>
我在WCF中定义的类类似于-

    [Serializable, XmlRoot("NafDetails")]
    [DebuggerStepThrough]
    [XmlType(AnonymousType = true)] 
    public class NafDetails
    {
        [XmlElement("NafInfo_NafNumber")]
        public string NafInfo_NafNumber { get; set; }
        [XmlElement("NafInfo_CFAcctNum")]
        public string NafInfo_CFAcctNum { get; set; }
        [XmlElement("NafInfo_RepNum")]
        public string NafInfo_RepNum { get; set; }
        [XmlElement("NafInfo_FASIRIA")]
        public bool NafInfo_FASIRIA { get; set; }
        [XmlElement("NafInfo_OutsideRIA")]
        public bool NafInfo_OutsideRIA { get; set; }
        [XmlElement("NafInfo_DirectBusiness")]
        public bool NafInfo_DirectBusiness { get; set; }
        [XmlElement("NafInfo_CF_Pershing")]
        public bool NafInfo_CF_Pershing { get; set; }
        [XmlElement("NafInfo_CF_JPMorgan")]
        public bool NafInfo_CF_JPMorgan { get; set; }
        [XmlElement("NafInfo_DVP")]
        public bool NafInfo_DVP { get; set; }
    }

请引导我完成这件事。谢谢。

你能试试下面这样的吗

    string xml = "<NafDetails>"+
                  "<NafInfo_NafNumber>Test</NafInfo_NafNumber>"+
                   "<NafInfo_CFAcctNum>New</NafInfo_CFAcctNum>"+
                   "<NafInfo_RepNum>Demo</NafInfo_RepNum>"+
                     "<NafInfo_FASIRIA>0</NafInfo_FASIRIA>"+
                  "<NafInfo_OutsideRIA>0</NafInfo_OutsideRIA>"+
                "</NafDetails>";

    NafDetails nafdetail;
    XmlSerializer serializer = new XmlSerializer(typeof(NafDetails));
    nafdetail = (NafDetails) serializer.Deserialize(XmlReader.Create(new StringReader(xml)));
谢谢
Deepu

NafDetails类来自wcf服务。它在客户端的代理与它在wcf中的实际实现不同。
    string xml = "<NafDetails>"+
                  "<NafInfo_NafNumber>Test</NafInfo_NafNumber>"+
                   "<NafInfo_CFAcctNum>New</NafInfo_CFAcctNum>"+
                   "<NafInfo_RepNum>Demo</NafInfo_RepNum>"+
                     "<NafInfo_FASIRIA>0</NafInfo_FASIRIA>"+
                  "<NafInfo_OutsideRIA>0</NafInfo_OutsideRIA>"+
                "</NafDetails>";

    NafDetails nafdetail;
    XmlSerializer serializer = new XmlSerializer(typeof(NafDetails));
    nafdetail = (NafDetails) serializer.Deserialize(XmlReader.Create(new StringReader(xml)));