C#反序列化xml文件

C#反序列化xml文件,c#,xml,serialization,deserialization,C#,Xml,Serialization,Deserialization,我尝试反序列化xml文件: <?xml version="1.0" encoding="utf-8"?> <XmlFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <OBJECTS ITEM="ItemValue" TABLE_NAME="TableExample"> </OBJE

我尝试反序列化xml文件:

<?xml version="1.0" encoding="utf-8"?>
<XmlFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <OBJECTS ITEM="ItemValue" TABLE_NAME="TableExample">
    </OBJECTS>
</XmlFile>
当我尝试反序列化xml文件时,总是没有错误,并且项和表的名称都等于null。为什么?

重播用Thx

[XmlRoot("XmlFile")]
public class SerializableContainer
{
    [XmlElement("OBJECTS")]
    public SerializeObject[] Objects { get; set; }
}

public class SerializeObject
{
    [XmlAttribute("ITEM")]
    public string Item { get; set; }

    [XmlAttribute("TABLE_NAME")]
    public string Table_Name { get; set; }
}
然后使用以下命令反序列化:

var serializer = new XmlSerializer(typeof(SerializableContainer));

using (var file = File.OpenText("sample.xml"))
{
    var data = (SerializableContainer)serializer.Deserialize(file);

    // ... 
}

在此留下一个更完整的示例,以防任何人需要:


干杯

更多的代码将是有用的。我猜测查看提供的信息是:您没有指定“OBJECTS”元素。您的类定义了“XmlFile/@ITEM”和“XmlFile/@TABLE_NAME”,而XML在这两者之间有一个“OBJECTS”元素。我看到了“Serializable”属性(用于运行时序列化程序)和“XmlRoot/xmldattribute”属性的使用,这些属性都是用于XmlSerializer的。你用哪一个?谢谢。现在我知道我在哪里犯了错误。
var serializer = new XmlSerializer(typeof(SerializableContainer));

using (var file = File.OpenText("sample.xml"))
{
    var data = (SerializableContainer)serializer.Deserialize(file);

    // ... 
}