/// <summary> /// Serializes the object. /// </summary> /// <param name="info">Serialization info object.</param> /// <param name="context">Streaming context.</param> public virtual void GetObjectData(SerializationInfo info, StreamingContext context) { if (info == null) { throw new ArgumentNullException("info"); } info.AddValue(FormatVersionName, Constants.FormatVersion, typeof(string)); SerializableTransferLocation serializableSourceLocation = new SerializableTransferLocation(this.Source); SerializableTransferLocation serializableDestLocation = new SerializableTransferLocation(this.Destination); info.AddValue(SourceName, serializableSourceLocation, typeof(SerializableTransferLocation)); info.AddValue(DestName, serializableDestLocation, typeof(SerializableTransferLocation)); info.AddValue(TransferMethodName, this.TransferMethod); info.AddValue(TransferProgressName, this.ProgressTracker); }