// ''' <summary> // ''' Creates a full copy (deep clone) of this instance. // ''' </summary> // ''' <typeparam name="bbType"></typeparam> // ''' <returns></returns> // ''' <remarks></remarks> public bbType DeepClone <bbType>() { MemoryStream memStream = new MemoryStream(); bbType clonedObject = default(bbType); //Als JSon in den Speicher serialisieren try { SerializeToStream(memStream); } catch { throw; } //Die Kopie wieder zurückserialisieren. try { memStream.Seek(0, SeekOrigin.Begin); clonedObject = (bbType)DeserializeFromStream(memStream); } catch { throw; } return(clonedObject); }
// ''' <summary> // ''' Erstellt eine vollständige Kopie (deep clone) dieser Instanz. // ''' </summary> // ''' <typeparam name="bbType"></typeparam> // ''' <returns></returns> // ''' <remarks></remarks> public bbType DeepClone <bbType>() { MemoryStream memStream = new MemoryStream(); var js = new System.Runtime.Serialization.Json.DataContractJsonSerializer(this.GetType(), TypeDetector.GetTypes(this)); bbType clonedObject = default(bbType); //Als JSon in den Speicher serialisieren try { js.WriteObject(memStream, this); } catch { throw; } //Die Kopie wieder zurückserialisieren. try { memStream.Seek(0, SeekOrigin.Begin); clonedObject = (bbType)js.ReadObject(memStream); } catch { throw; } return(clonedObject); }