using System; using System.Runtime.Serialization; using System.Xml; namespace DevComponents.DotNetBar { /// /// Summary description for DotNetBarStreamer. /// [Serializable()] public sealed class DotNetBarStreamer:IDisposable,ISerializable { private XmlDocument m_XmlDoc=null; private DotNetBarManager m_Owner=null; private DotNetBarStreamer(){} private DotNetBarStreamer(SerializationInfo info, StreamingContext c) { SerializationInfoEnumerator en=info.GetEnumerator(); while(en.MoveNext()) { //System.Windows.Forms.MessageBox.Show("Read stream: "+en.Name); if(en.Name=="dotnetbardata") { string s=(string)en.Value; m_XmlDoc=new XmlDocument(); m_XmlDoc.LoadXml(s); break; } } } public DotNetBarStreamer(DotNetBarManager owner) { m_Owner=owner; } void ISerializable.GetObjectData (SerializationInfo info, StreamingContext context) { /*if(m_Owner==null) { if(m_XmlDoc!=null) System.Windows.Forms.MessageBox.Show("XML DOC IS not NULL !!!!"); else System.Windows.Forms.MessageBox.Show("Serializing: NULL"); } else System.Windows.Forms.MessageBox.Show("Serializing VALUE");*/ if(m_Owner==null && m_XmlDoc==null) return; // Very important to set the type to string, if type is not set then // complete assembly version is written to the file, probably becouse type is // binary and when new version is compiled the old stream could not be loaded again. string s=info.AssemblyName; string[] sarr=s.Split(','); s=""; for(int i=0;i