using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.ComponentModel;
using System.Runtime.Serialization;
using System.Xml.Serialization;
using System.Diagnostics;
using System.Xml.Schema;
using System.Drawing.Drawing2D;
namespace Netron.Diagramming.Core
{
///
/// Complementary partial class related to (de)serialization.
///
[Serializable]
public partial class PenStyle :
ISerializable,
IXmlSerializable,
IDeserializationCallback
{
#region Deserialization constructor
// -------------------------------------------------------------------
///
/// Deserialization constructor
///
/// The info.
/// The context.
// -------------------------------------------------------------------
protected PenStyle(SerializationInfo info, StreamingContext context)
{
if (Tracing.BinaryDeserializationSwitch.Enabled)
{
Trace.WriteLine("Deserializing the fields of 'PenStyle'.");
}
double version = info.GetDouble("PenStyleVersion");
mWidth = info.GetSingle("Width");
mColor = (Color)info.GetValue("Color", typeof(Color));
mDashStyle = (System.Drawing.Drawing2D.DashStyle)Enum.Parse(
typeof(System.Drawing.Drawing2D.DashStyle),
info.GetString("DashStyle"));
}
#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("PenStyleVersion", penStyleVersion);
info.AddValue("Color", this.mColor, typeof(Color));
info.AddValue("Width", this.mWidth);
info.AddValue("DashStyle", this.mDashStyle.ToString());
}
#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.");
}
}
}