Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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#XML_C#_Xml_Serialization - Fatal编程技术网

使用空节点反序列化C#XML

使用空节点反序列化C#XML,c#,xml,serialization,C#,Xml,Serialization,我正在尝试将XML反序列化为对象MyClass。XML如下所示: <MyClass xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <var1 Type="Numeric">0.91766552047165573</var1> <var2 Type="Numeric">8&l

我正在尝试将XML反序列化为对象MyClass。XML如下所示:

<MyClass xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <var1 Type="Numeric">0.91766552047165573</var1>
      <var2 Type="Numeric">8</var2>
      <var3 Type="Numeric">11</var3>
      <var4 Type="Numeric">12</var4>
      <var5 Type="Numeric">0</var5>
      <var6 Type="Numeric">0.02</var6>
      <var7 Type="Financial" Currency="USD">7.0589655420896529</var7>
</MyClass>
下面是我尝试反序列化类对象的类声明

    [XmlRoot("MyClass")]
    [Serializable]
            public class MyClass
            {
                [System.Xml.Serialization.XmlElement("var1")]
                public DataValue var1 { get; set; }
                [System.Xml.Serialization.XmlElement("var2")]
                public DataValue var2 { get; set; }
                [System.Xml.Serialization.XmlElement("var3")]
                public DataValue var3 { get; set; }
                [System.Xml.Serialization.XmlElement("var4")]
                public DataValue var4 { get; set; }
                [System.Xml.Serialization.XmlElement("var5")]
                public DataValue var5 { get; set; }
                [System.Xml.Serialization.XmlElement("var6")]
                public DataValue var6 { get; set; }
                [System.Xml.Serialization.XmlElement("var7")]
                public DataValue var7 { get; set; }
            }

您需要重命名或删除MyClass节点,因为它在xml中定义了两次,我将我的类的所有数字成员转换为double,并正确地反序列化了它

如何声明
MyClass
?很抱歉,该描述已更新。您在根目录下有另一个MyClass节点,这可能就是原因。尝试删除它,并且只使用一个MyClass作为根。谢谢Selman,我想你可能是对的,让我试试。谢谢Bhanu,我会试试的。目前还不太确定如何删除节点,但我将尝试一些方法。Shi Bhanu,我遇到以下异常:System.InvalidOperationException:XML文档(1,2)中存在错误。-->System.InvalidOperationException:不应为。在将根属性节点更改为MyClassCalcMay时,您是否可以向我发送您正在使用0.91766552047165573 8 11 12 0 0.02 7.0589655420896529尝试的xml,我现在通过将声明上方的[XmlRoot(“MyClass”)]更改为[XmlRoot(“MyClassCalc”)]来清除错误,但我仍然得到空值
    [XmlRoot("MyClass")]
    [Serializable]
            public class MyClass
            {
                [System.Xml.Serialization.XmlElement("var1")]
                public DataValue var1 { get; set; }
                [System.Xml.Serialization.XmlElement("var2")]
                public DataValue var2 { get; set; }
                [System.Xml.Serialization.XmlElement("var3")]
                public DataValue var3 { get; set; }
                [System.Xml.Serialization.XmlElement("var4")]
                public DataValue var4 { get; set; }
                [System.Xml.Serialization.XmlElement("var5")]
                public DataValue var5 { get; set; }
                [System.Xml.Serialization.XmlElement("var6")]
                public DataValue var6 { get; set; }
                [System.Xml.Serialization.XmlElement("var7")]
                public DataValue var7 { get; set; }
            }