我正在开发一个sprite版本工具,通过点击spritesheet中的精灵来填充DataGridView,其中包含该精灵的id,位置和大小,然后按一个按钮将这些行导出到XML文件,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfModule xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Module>
<ID>0</ID>
<posx>247</posx>
<posy>87</posy>
<width>36</width>
<height>72</height>
</Module>
<Module>
<ID>1</ID>
<posx>197</posx>
<posy>87</posy>
<width>32</width>
<height>70</height>
</Module>
</ArrayOfModule>
我正在使用XmlSerializer。我实现了具有这5个属性的类型模块列表。问题是我想添加一个新标签,它不是模块类的属性,表示用于精灵表的图像,所以我可以同时导入这些模块和图像。我希望我的XML像这样:
<?xml version="1.0" encoding="utf-8"?>
<Image>C:\sprite_sheet.png</Image>
<ArrayOfModule xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Module>
<ID>0</ID>
<posx>247</posx>
<posy>87</posy>
<width>36</width>
<height>72</height>
</Module>
</ArrayOfModule>
我怎样才能做到这一点? 我可以使用XmlSerializer执行此操作还是需要其他功能?
答案 0 :(得分:0)
您必须创建一个包装类:
public class AllInfo
{
public string Image {get;set;}
public Module[] Modules {get;set;}
}
当您将此类的实例传递给序列化程序时,它将序列化两条信息。