【发布时间】:2012-01-11 14:05:59
【问题描述】:
尝试将 XML 文件从第三方工具反序列化为自定义软件类。问题是 XML 有点傻,因为“根”项实际上是集合的声明。我已经用 XMLArray 和其他定义来定义序列化做了很多工作,但这似乎不起作用。我能做的最好的事情是让集合读入,但集合中的所有对象都没有用变量初始化。
这是我所面临的一个例子:
XML:
<Animals>
<Animal>
<Name>Mr. Cow</Name>
<Type>Cow</Type>
</Animal>
<Animal>
<Name>Belle</Name>
<Type>Cow</Type>
</Animal>
<Animal>
<Name>Porky</Name>
<Type>Pig</Type>
</Animal>
</Animals>
然后,我在“农场”对象中将 XMLRoot 定义为“动物”。并为我的“动物”课程提供一个列表属性。如果我定义该属性(列表 AnimalCollection),我能得到的最好的结果是 3 个未启动的 Animal 对象的列表(没有设置任何值)。
在办公室周围,我们能想到的最好的办法是在尝试反序列化并像往常一样使用它之前,将一个节点作为流添加到文件中,但显然这似乎是一个可怕的 hack。希望有更好的方法,我只是想念。
我也考虑过手动读取文档...但再次希望有更优雅的方式。
【问题讨论】:
标签: c# xml-serialization