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] имеет значение только для двоичной сериализации. Имейте в виду, что вы никогда не сможете получить класс формы, сериализованный, с чем вам придется иметь дело, когда вы десериализуете фигуру. Он не совсем принадлежит этому классу. –