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類,這是在反序列化一個形狀時必須處理的。它並不完全屬於該類。 –