问题描述
我程序里要用到几种自定义的对象,一共是9个对象。每一个对象有不同的属性(我把它定义成结构体了)。其中对象1的属性是结构体LEDWindowsAttribute对象2、对象3的属性是结构体TextWindowsAttribute对象4、对象5、对象6、对象7、对象8、对象9的属性是结构体TimeWindowsAttribute对象1是父节点(只有一个)对象2------对象8是子节点。我通过程序上的按钮操作动态的增加或删除子节点(用TreeView显示父节点和子节点,子节点里有重复对象比如有3个对象2,且子节点数量可能很多)。我怎么才能将节点关系及对象属性序列化并存储成XML格式的文件,怎么反序列化XML文件解析还原得到TreeView上的树状结构和各个节点的属性。希望大神给出思路和代码,小弟不胜感激!TreeView上的表现形式如下所示对象1的NodeText值|----对象2的NodeText值|----对象3的NodeText值|----对象4的NodeText值|----对象5的NodeText值|----对象2的NodeText值|----对象6的NodeText值|----对象3的NodeText值。。。。。。//////单行文字和多行文字对象窗口的属性///publicstructTextWindowsAttribute{[XmlAttribute("NodeName")]publicstringNodeName;//节点名字[XmlElement("NodeText")]publicstringNodeText;//节点文本[XmlElement("NodeIndex")]publicintNodeIndex;//节点序号[XmlElement("X")]publicintX;//X坐标[XmlElement("Y")]publicintY;//Y坐标[XmlElement("Width")]publicintWidth;//宽度[XmlElement("Height")]publicintHeight;//高度[XmlElement("Text")]publicstringText;//文字[XmlElement("FontName")]publicstringFontName;//字体[XmlElement("FontSize")]publicfloatFontSize;//字号[XmlElement("FontBold")]publicboolFontBold;//是否粗体[XmlElement("FontItalic")]publicboolFontItalic;//是否斜体[XmlElement("FontUnderline")]publicboolFontUnderline;//是否有下划线[XmlElement("FontColor")]publicintFontColor;//文字颜色}//////时间对象窗口的属性///publicstructTimeWindowsAttribute{[XmlAttribute("NodeName")]publicstringNodeName;//节点名字[XmlElement("NodeText")]publicstringNodeText;//节点文本[XmlElement("NodeIndex")]publicintNodeIndex;//节点序号[XmlElement("X")]publicintX;//X坐标[XmlElement("Y")]publicintY;//Y坐标[XmlElement("Width")]publicintWidth;//宽度[XmlElement("Height")]publicintHeight;//高度[XmlElement("FontName")]publicstringFontName;//字体[XmlElement("FontSize")]publicfloatFontSize;//字号[XmlElement("FontBold")]publicboolFontBold;//是否粗体[XmlElement("FontItalic")]publicboolFontItalic;//是否斜体[XmlElement("FontUnderline")]publicboolFontUnderline;//是否有下划线[XmlElement("FontColor")]publicintFontColor;//文字颜色}//////LED显示屏对象窗口的属性///publicstructLEDWindowsAttribute{[XmlAttribute("NodeName")]publicstringNodeName;//节点名字[XmlElement("NodeText")]publicstringNodeText;//节点文本[XmlElement("NodeIndex")]publicintNodeIndex;//节点序号[XmlElement("X")]publicintX;//X坐标[XmlElement("Y")]publicintY;//Y坐标[XmlElement("Width")]publicintWidth;//宽度[XmlElement("Height")]publicintHeight;//高度}
解决方案
解决方案二:
自己顶一个
解决方案三:
http://www.cnblogs.com/yukaizhao/archive/2011/07/22/xml-serialization.html