我试图将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>
和下面的代码块。
private string SerializeXml(string xml)
{
var _xml = @xml;
var serializer = new XmlSerializer(typeof(MyClass));
using (var reader = new StringReader(xml))
{
MyClass myClass = (MyClass)serializer.Deserialize(reader);
}
return string.Empty;
}
在下面的类声明中,我尝试反序列化类对象
[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; }
}
答案 0 :(得分:0)
您需要重命名或删除xml中两次定义的MyClass节点
答案 1 :(得分:0)
反序列化无法识别我正在使用的数据类型,我将类的所有数字成员都转换为double并正确反序列化了