środa, 21 maja 2014

Klonowanie obiektu - deep cloning

Post ku pamięci. Jak szybko i łatwo wykonać klonowanie całego obiektu (tzw. deep cloning). Możemy użyć takiej funkcji:


public object CloneObject(object o)
{
   Type t = o.GetType();
   PropertyInfo[] properties = t.GetProperties();

   Object p = t.InvokeMember("", System.Reflection.BindingFlags.CreateInstance,
   null, o, null);

   foreach (PropertyInfo pi in properties)
   {
      if (pi.CanWrite)
      {
         pi.SetValue(p, pi.GetValue(o, null), null);
      }
   }

   return p;
}

Brak komentarzy:

Prześlij komentarz