using System; using System.Diagnostics; using System.Drawing; using System.Runtime.Serialization; using System.Xml.Schema; using System.Xml.Serialization; namespace Netron.Diagramming.Core { // ----------------------------------------------------------------------- /// /// Complementary partial class related to (de)serialization. /// // ----------------------------------------------------------------------- [Serializable] public partial class SimpleShapeBase : ISerializable, IXmlSerializable, IDeserializationCallback { #region Deserialization constructor // ------------------------------------------------------------------- /// /// Deserialization constructor /// /// The info. /// The context. // ------------------------------------------------------------------- protected SimpleShapeBase( SerializationInfo info, StreamingContext context) : base(info, context) { if (Tracing.BinaryDeserializationSwitch.Enabled) { Trace.WriteLine( "Deserializing the fields of 'SimpleShapeBase'."); } double version = info.GetDouble("SimpleShapeBaseVersion"); mText = info.GetString("Text"); mAutoSize = info.GetBoolean("AutoSize"); mAllowTextEditing = info.GetBoolean("AllowTextEditing"); mEditTextClicks = info.GetInt32("EditTextClicks"); mTextArea = (Rectangle)info.GetValue( "TextArea", typeof(Rectangle)); mTextStyle = (ITextStyle)info.GetValue( "TextStyle", typeof(ITextStyle)); } #endregion #region Serialization events /* [OnSerializing] void OnSerializing(StreamingContext context) { Trace.WriteLine("Starting to serializing the 'SimpleShapeBase' class..."); } [OnSerialized] void OnSerialized(StreamingContext context) { Trace.WriteLine("...serialization of 'SimpleShapeBase' finished"); } */ #endregion #region Deserialization events /* [OnDeserializing] void OnDeserializing(StreamingContext context) { Trace.Indent(); Trace.WriteLine("Starting deserializing the 'SimpleShapeBase' class..."); } [OnDeserialized] void OnDeserialized(StreamingContext context) { Trace.WriteLine("...deserialization of 'SimpleShapeBase' finished"); Trace.Unindent(); } */ #endregion #region Serialization // ------------------------------------------------------------------- /// /// Populates a /// /// with the data needed to serialize the target object. /// /// The /// /// to populate with data. /// The destination (see /// ) /// for this serialization. /// The caller /// does not have the required permission. // ------------------------------------------------------------------- public override void GetObjectData( SerializationInfo info, StreamingContext context) { if (Tracing.BinarySerializationSwitch.Enabled) { Trace.WriteLine( "Serializing the fields of 'SimpleShapeBase'."); } base.GetObjectData(info, context); info.AddValue("SimpleShapeBaseVersion", simpleShapeBaseVersion); info.AddValue("Text", mText); info.AddValue("AutoSize", mAutoSize); info.AddValue("AllowTextEditing", mAllowTextEditing); info.AddValue("EditTextClicks", mEditTextClicks); info.AddValue("TextArea", mTextArea, typeof(Rectangle)); info.AddValue("TextStyle", mTextStyle, typeof(ITextStyle)); } #endregion #region Xml serialization /// /// This property is reserved, apply the to the class instead. /// /// /// An that describes the XML representation of the object that is produced by the method and consumed by the method. /// public override XmlSchema GetSchema() { throw new NotImplementedException("The method or operation is not implemented."); } /// /// Generates an object from its XML representation. /// /// The stream from which the object is deserialized. public override void ReadXml(System.Xml.XmlReader reader) { throw new NotImplementedException("The method or operation is not implemented."); } /// /// Converts an object into its XML representation. /// /// The stream to which the object is serialized. public override void WriteXml(System.Xml.XmlWriter writer) { throw new NotImplementedException("The method or operation is not implemented."); } #endregion // ------------------------------------------------------------------- /// /// Runs when the entire object graph has been deserialized. /// /// The object that initiated the callback. The /// functionality for this parameter is not currently /// implemented. // ------------------------------------------------------------------- public override void OnDeserialization(object sender) { base.OnDeserialization(sender); if (Tracing.BinaryDeserializationSwitch.Enabled) { Trace.WriteLine( "IDeserializationCallback of 'SimpleShapeBase' called."); } } } }