【发布时间】:2016-08-08 18:47:20
【问题描述】:
我有以下课程:
using System.Collections;
using System.Xml;
using System.Xml.Serialization;
public class Resource
{
[XmlAttribute("name")]
public string m_Name { get; set; }
public string[] ItemDrop;
}
还有这个 XML 文件:
<ResourceData>
<Resources>
<Resource name="Iron Ore">
<ItemDrop type="array">
<value>Iron Piece</value>
</ItemDrop>
</Resource>
<Resource name="Tree">
<ItemDrop type="array">
<value>Log</value>
<value>Leaves</value>
<value>Apple</value>
</ItemDrop>
</Resource>
</Resources>
</ResourceData>
我正在尝试反序列化文件并将这两个 Resource 对象放在数组中。
它正确读取了 m_Name,但 ItemDrop 数组中没有任何内容。
这是我加载数据的方式:
public static ResourceContainer Load(string path)
{
var serializer = new XmlSerializer(typeof(ResourceContainer));
using (var stream = new FileStream(path, FileMode.Open))
{
return serializer.Deserialize(stream) as ResourceContainer;
}
}
【问题讨论】:
-
用 XmlArray 和 XmlArrayItem 标记它以指定内部结构。
-
工作正常,谢谢先生! ;)
标签: c# xml xmlserializer