public void Serialise(ISerialisationContext context) { context.Formatter.Serialize(context.Stream, _UniqueName); context.Formatter.Serialize(context.Stream, this.CurrentState); SaveHistoryStates(context); SaveFields(context); }
public void Deserialise(ISerialisationContext context) { this._UniqueName = (string)context.Formatter.Deserialize(context.Stream); this.CurrentState = (QState)context.Formatter.Deserialize(context.Stream); LoadHistoryStates(context); LoadFields(context); LogRestored(); }
protected override void SaveHistoryStates(ISerialisationContext context) { base.SaveHistoryStates(context); if (null == _TimeKeeping_DeepHistory) { context.Formatter.Serialize(context.Stream, null); } else { context.Formatter.Serialize(context.Stream, _TimeKeeping_DeepHistory.Method.Name); } }
protected override void LoadHistoryStates(ISerialisationContext context) { base.LoadHistoryStates(context); string methodName_TimeKeeping = (string)context.Formatter.Deserialize(context.Stream); if (null == methodName_TimeKeeping) { _TimeKeeping_DeepHistory = null; } else { _TimeKeeping_DeepHistory = (QState)Delegate.CreateDelegate(typeof(QState), this, methodName_TimeKeeping); } }
protected virtual void LoadFields(ISerialisationContext context) { }
protected virtual void LoadHistoryStates(ISerialisationContext context) { }
protected virtual void SaveHistoryStates(ISerialisationContext context) { }
protected virtual void SaveFields(ISerialisationContext context) { }
public void Serialise(ISerialisationContext context) { context.Formatter.Serialize (context.Stream, _UniqueName); context.Formatter.Serialize (context.Stream, this.CurrentStateMethod); SaveHistoryStates (context); SaveFields (context); }
public void Deserialise(ISerialisationContext context) { this._UniqueName = (string) context.Formatter.Deserialize (context.Stream); this.CurrentStateMethod = (System.Reflection.MethodInfo) context.Formatter.Deserialize (context.Stream); LoadHistoryStates (context); LoadFields (context); LogRestored (); }