-5
我有两个对象 - Book和Shelf。将非嵌套对象序列化为嵌套
class Book
{
}
class Shelf
{
}
正如你所看到的,它们不是内在的。
如何序列化他们,让我得到XML,看起来像这样:
<Book bookAttribute="">
<Shelf>bla</Shelf>
<Shelf>bla1</Shelf>
</Book>
我有两个对象 - Book和Shelf。将非嵌套对象序列化为嵌套
class Book
{
}
class Shelf
{
}
正如你所看到的,它们不是内在的。
如何序列化他们,让我得到XML,看起来像这样:
<Book bookAttribute="">
<Shelf>bla</Shelf>
<Shelf>bla1</Shelf>
</Book>
我要在这里乘坐裂缝它,假定与信息你给你需要一个阶级结构是这样的:
class Book
{
[XmlAttribute("bookAttribute")]
public string bookAttribute = "";
[XmlElement("Shelf")]
List<Shelf> Shelves = new List<Shelf>();
}
class Shelf
{
}
然后,当你创建一本书,书架之间的纲领性关系(这似乎落后于我 - 但我不知道整个场景是什么)然后你可以在循环播放您“保存”例程将其写为XML。
倘若原有结构不能修改,你仍然可以从他们那里获得类:
class ExpandedBook: Book
{
[XmlAttribute("bookAttribute")]
public string bookAttribute = "";
[XmlElement("Shelf")]
List<Shelf> Shelves = new List<Shelf>();
}
...除非类是密封在这种情况下,你必须创建的丑陋阵列阵列。
考虑到你的例子中没有关系,在你的例子中没有关于bookAttribute的信息bla,bla1,也没有关系,所以我很难读懂你的想法并想出一个解决方案。 – 2011-12-27 20:10:04
更不用说XML显示1本书和2个书架了......需要更多信息在这里! – 2011-12-27 20:12:33
你确定你正在寻找序列化吗?看起来你只是想编写一个XML文档。在这种情况下,是的,这是可能的。如果你确实在序列化之后,那么你的对象模型将需要反映你期望写入的XML。 – 2011-12-27 20:13:37