■ BinaryFormatter 클래스를 사용해 객체를 복사하는 방법을 보여준다. (DEEP-COPY)
▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
using System.IO; using System.Runtime.Serialization.Formatters.Binary; #region 객체 복사하기 - CopyObject<SourceType>(sourceObject) /// <summary> /// 객체 복사하기 /// </summary> /// <typeparam name="SourceType">소스 타입</typeparam> /// <param name="sourceObject">소스 객체</param> /// <returns>복사 객체</returns> public SourceType CopyObject<SourceType>(SourceType sourceObject) { using(MemoryStream stream = new MemoryStream()) { BinaryFormatter formatter = new BinaryFormatter(); formatter.Serialize(stream, sourceObject); stream.Position = 0; return (SourceType)formatter.Deserialize(stream); } } #endregion |