I tried to break the ice. Please look. Create a class called MyXMLSerializer as follows:
public class MyXMLSerializer { delegate void del_xmlSerializing(); del_xmlSerializing ds; delegate void del_xmlSerialized(System.IO.Stream stream, object o); AsyncCallback cb; del_xmlSerialized dd; delegate void del_xmlDeserializing(); del_xmlDeserializing dx; delegate object del_xmlDeserialized(System.IO.Stream stream); AsyncCallback db; del_xmlDeserialized xd; object FinalDeserializedObject = null; public MyXMLSerializer() { } public void Serialize(System.IO.Stream stream,object o,Type ClassType) { XmlSerializer xx = new XmlSerializer(ClassType); ds = new del_xmlSerializing(OnXMLSerializing_Begin); IAsyncResult IAR_Begin = ds.BeginInvoke(null, null); ds.EndInvoke(IAR_Begin); dd = new del_xmlSerialized(xx.Serialize); cb = new AsyncCallback(OnXMLSerializing_Completed); IAsyncResult IAR = dd.BeginInvoke(stream, o, cb, dd);
Now create another class called TotalRecall and inherit the MyXMLSerializer class into this class as follows:
public class TotalRecall:MyXMLSerializer { public override void OnSerialized() { MessageBox.Show("Yippeeee!!!!!,I Finally Managed To Wire [ONSERIALIZED] Event With XMLSerializer.My Code Upon XML Serialized[ONSERIALIZED] Goes Here..");
Now create a form (I created a Windows form). Create two buttons on it with the names Button1 and Button2 (by default). My full form code:
public partial class Form2 : Form { public Form2() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { TotalRecall xx = new TotalRecall(); Employee ee = new Employee(); FileStream fs = File.Create("sss.xml"); xx.Serialize(fs, ee, typeof(Employee)); fs.Close(); fs.Dispose(); } private void button2_Click(object sender, EventArgs e) { TotalRecall xx = new TotalRecall(); FileStream fs=File.OpenRead("sss.xml"); Employee ee = (Employee)xx.Deserialize(fs, typeof(Employee)); fs.Close(); fs.Dispose(); } }
Please indicate namespaces wherever I skip this copy.
source share