Bazı durumlarda aslında aynı olan iki nesne farklı isim uzayları altında bulunabilmektedir. Bu durumda nesneleri birbirine dönüştürecek bir metoda ihtiyaç duyulmaktadır. Örnek bir durum:
namespace MyNamespace
{
public class Personel
{
public int I { get; set; }
public string S { get; set; }
}
}
namespace MyNamespace2
{
public class Personel
{
public int I { get; set; }
public string S { get; set; }
}
}
Bu örnekte görüldüğü gibi Personel sınıfları aslında aynı nesnedir ama farklı isim uzayı altında yer alıyor. Bu gibi durumlarda aşağıdaki gibi bir metot kullanılabilir.
public static void MyMethod<T, T1>(ref T ob1, T1 ob2)
{
foreach (PropertyInfo property in ob1.GetType().GetProperties())
{
property.SetValue(ob1, ob2.GetType().GetProperty(property.Name).GetValue(ob2));
}
}
Bu metot sonucunda ob2 nesnesinin değerleri ob1 nesnesine aktarılmış olacaktır. Burada dikkat edilmesi gereken nokta örnek Personel sınıfında olduğu gibi sınıfların aynı olmasıdır.