using System; using System.Diagnostics; using System.Drawing; using System.Runtime.Serialization; using System.Xml.Schema; using System.Xml.Serialization; using ToolBox.Formatting; namespace Netron.Diagramming.Core { [Serializable] public partial class TextStyle : ISerializable, IXmlSerializable, IDeserializationCallback { #region Deserialization constructor // ------------------------------------------------------------------ /// /// Deserialization constructor /// /// The info. /// The context. // ------------------------------------------------------------------ protected TextStyle( SerializationInfo info, StreamingContext context) { if (Tracing.BinaryDeserializationSwitch.Enabled) { Trace.WriteLine("Deserializing the fields of 'TextStyle'."); } double version = info.GetDouble("TextStyleVersion"); mDecimalPlaces = info.GetInt32("DecimalPlaces"); mTextFormat = (TextFormat)info.GetValue( "TextFormat", typeof(TextFormat)); mFont = (Font)info.GetValue( "Font", typeof(Font)); mFontColor = (Color)info.GetValue( "FontColor", typeof(Color)); mHorizontalAlignment = (StringAlignment)info.GetValue( "HorizontalAlignment", typeof(StringAlignment)); mVerticalAlignment = (StringAlignment)info.GetValue( "VerticalAlignment", typeof(StringAlignment)); } #endregion #region Serialization events /* [OnSerializing] void OnSerializing(StreamingContext context) { Trace.WriteLine("Starting to serializing the 'PenStyle' class..."); } [OnSerialized] void OnSerialized(StreamingContext context) { Trace.WriteLine("...serialization of 'PenStyle' finished"); } */ #endregion #region Deserialization events /* [OnDeserializing] void OnDeserializing(StreamingContext context) { Trace.Indent(); Trace.WriteLine("Starting deserializing the 'PenStyle' class..."); } [OnDeserialized] void OnDeserialized(StreamingContext context) { Trace.WriteLine("...deserialization of 'PenStyle' 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 virtual void GetObjectData(SerializationInfo info, StreamingContext context) { if (Tracing.BinarySerializationSwitch.Enabled) Trace.WriteLine("Serializing the fields of 'PenStyle'."); info.AddValue("TextStyleVersion", textStyleVersion); info.AddValue("DecimalPlaces", this.mDecimalPlaces, typeof(int)); info.AddValue("TextFormat", this.mTextFormat, typeof(TextFormat)); // Note: we do not have to serialize the font style (i.e. IsBold, // IsUnderline, etc.) because that's included in the font. info.AddValue("Font", this.mFont, typeof(Font)); info.AddValue("FontColor", this.mFontColor, typeof(Color)); info.AddValue( "HorizontalAlignment", this.mHorizontalAlignment, typeof(StringAlignment)); info.AddValue( "VerticalAlignment", this.mVerticalAlignment, typeof(StringAlignment)); } #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 virtual 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 virtual 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 virtual 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 virtual void OnDeserialization(object sender) { if (Tracing.BinaryDeserializationSwitch.Enabled) { Trace.WriteLine( "IDeserializationCallback of 'PenStyle' called."); } } } }