среда, 6 февраля 2013 г.

Универсальная глубокая копия объекта.

Часто приходится создавать копию объекта, и каждый раз приходится переписывать весь код для учета специфику объекта. Несколько поразмыслив я нашел полу универсальное решение  проблемы. Почему полу универсальное? Потому что все равно при каждой новой задаче создания копии объекта , приходится учитывать его специфические требования. Так что данное решение хоть и не панацея, но одно из самых простых, оно использует стерилизацию и последующую десерелизацию из памяти.

   1:  
   2: using System.IO;
   3: using 
   4: System.Runtime.Serialization.Formatters.Binary;
   5: namespace Utils.Data
   6: {
   7: public class DeepCopy
   8: {
   9: public static object Clone(object inobject)
  10: {
  11: BinaryFormatter BF = new BinaryFormatter();
  12: MemoryStream memStream = new MemoryStream();
  13: BF.Serialize(memStream, inobject);
  14: memStream.Flush();
  15: memStream.Position = 0;
  16: return BF.Deserialize(memStream);
  17: }
  18: }
  19: }



Не правда ли просто крошечный код):.

Комментариев нет:

Отправить комментарий