Vicomi
- Back to Home »
- Serialization and Deserialization
================= StudentForm Class ============
[Serializable()]
public class StudentForm
{
public string form_id { get; set; }
public string form_name { get; set; }
public List<ElementProperty> elementProperty_ { get; set; }
// public StudentForm()
// {
// elementProperty_ = new List
// }
public StudentForm()
{
elementProperty_ = new List< ElementProperty >
}
}
==================ElementProperty Class===========================
public class ElementProperty
{
public string element_id { get; set; }
public string element_name { get; set; }
}
============ DataManager Class ====================
class DataManager
{
public string guidGenerator()
{
Guid g = Guid.NewGuid();
return Guid.NewGuid().ToString() ;
}
public void addItemsToList(ListBox lb, string ele)
{
lb.Items.Add(ele);
}
public void SerializeObject
{
XmlDocument xmlDocument = new XmlDocument();
XmlSerializer serializer = new XmlSerializer(serializableObject.GetType());
using (MemoryStream stream = new MemoryStream())
{
serializer.Serialize(stream, serializableObject);
stream.Position = 0;
xmlDocument.Load(stream);
xmlDocument.Save(fileName);
stream.Close();
}
}
public T DeSerializeObject
{
if (string.IsNullOrEmpty(fileName)) { return default(T); }
T objectOut = default(T);
try
{
string attributeXml = string.Empty;
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.Load(fileName);
string xmlString = xmlDocument.OuterXml;
using (StringReader read = new StringReader(xmlString))
{
Type outType = typeof(T);
XmlSerializer serializer = new XmlSerializer(outType);
using (XmlReader reader = new XmlTextReader(read))
{
objectOut = (T)serializer.Deserialize(reader);
reader.Close();
}
read.Close();
}
}
catch (Exception ex)
{
//Log exception here
}
return objectOut;
}
}
======================= Form.CS =====================
public partial class Form1 : Form
{
StudentForm student1 = new StudentForm();
public Form1()
{
InitializeComponent();
}
private void btnAdd_Click(object sender, EventArgs e)
{
try
{
ElementProperty element1 = new ElementProperty();
DataManager dataManager = new DataManager();
element1.element_id = dataManager.guidGenerator();
element1.element_name = textBox3.Text;
student1.elementProperty_.Add(element1);
student1.form_id = textBox1.Text;
student1.form_name = textBox2.Text;
dataManager.addItemsToList(listBox1, element1.element_name);
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
private void btnSave_Click(object sender, EventArgs e)
{
//---------------
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.InitialDirectory = Convert.ToString(Environment.SpecialFolder.MyDocuments);
saveFileDialog1.Filter = "Your extension here (*.EXT)|*.ext|All Files (*.*)|*.*";
saveFileDialog1.FilterIndex = 1;
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
DataManager dataManager = new DataManager();
dataManager.SerializeObject(student1, saveFileDialog1.FileName);
}
}
private void Form1_Load(object sender, EventArgs e)
{
DataManager dataManager = new DataManager();
textBox1.Text = dataManager.guidGenerator();
}
private void button1_Click(object sender, EventArgs e)
{
string fileName="";
OpenFileDialog openFileDialog1 = new OpenFileDialog();
DialogResult result = openFileDialog1.ShowDialog();
if (result == DialogResult.OK) // Test result.
{
fileName = openFileDialog1.FileName;
}
DataManager dataManager = new DataManager();
StudentForm deStudent1 = dataManager.DeSerializeObject
textBox1.Text = deStudent1.form_id;
textBox2.Text = deStudent1.form_name;
for (int i = 0; i < deStudent1.elementProperty_.ToArray().Length; i++)
{
listBox1.Items.Add(deStudent1.elementProperty_.ToArray()[i].element_name);
}
}
}