2
我有一个复杂的形状。应用程序允许绘制这些形状的任何数量。 然后,我必须将该图片保存为XML文件。我如何将它们保存在XML文件中? 我的.xml被创建,但只有这样的信息。图形对象的序列化
<?xml version="1.0"?>
[Serializable, XmlRoot(Namespace = "http://www.intertech.com")]
public class ComplexShape
{
int x;
int y;
int a; // large elipse width/2
int b; // large elipse height/2
Form1 fr;
float angle;
}
private void saveAsToolStripMenuItem_Click(object sender, EventArgs e)
{
using (SaveFileDialog saveDlg = new SaveFileDialog())
{
// Configure the look and feel of the save dialog.
saveDlg.InitialDirectory = ".";
saveDlg.Filter = "XML Files|*.xml";
saveDlg.RestoreDirectory = true;
saveDlg.FileName = "MyShapes";
if (saveDlg.ShowDialog() == DialogResult.OK)
{
XmlSerializer xml_serializer = new XmlSerializer(typeof(ComplexShape));
using (Stream fstream = new FileStream(saveDlg.FileName, FileMode.Create, FileAccess.Write, FileShare.None))
{
xml_serializer.Serialize(fstream, complexShapes);
fstream.Close();
MessageBox.Show("serialized");
}
}
}
}
complexShapes是ComplexShapes的阵列,它们创造,按钮上单击绘图。
你需要在'complexShapes'定义属性的XML序列化工作。 – ja72
XML序列化不会序列化类的* private *成员。不像二进制序列化。另外,[Serializable]属性对于二进制序列化只起作用。请记住,您永远无法获得序列化的Form类,这是在反序列化一个形状时必须处理的。它并不完全属于该类。 –