在工作中遇到兩個類具有相同的屬性,但是是不同的兩個類,屬性很多,互相轉換起來很麻煩,於是就想到了下面的辦法,實現他們的互相轉換,請指教:
public static listconvertt1tot2(listresoucelist) where t1 : new() where t2 : new()
t1 resouce = new t1();
t2 target = new t2();
listtargetlist = new list();
propertyinfo resoucepropinfos = null;
propertyinfo targetpropinfos = null;
if (resoucepropinfos == null)
if (targetpropinfos == null)
foreach (t1 t1 in resoucelist)
foreach (propertyinfo property in targetpropinfos)
targetlist.add(temptarget);
} return targetlist;
public static object settype(this object value, type conversiontype)
if (conversiontype.isgenerictype && conversiontype.getgenerictypedefinition().equals(typeof(nullable<>)))
else
}
return system.convert.changetype(value, conversiontype);
呼叫例項:
public class a1
public string a2
public a1(string a1, string a2)
public a1()
public class b1
public string a1
public int a2
public string a3
public b1(string a1, int a2)
public b1()
listlist1 = new list();
a1 a1 = new a1();
a1.a1 = "11";
a1.a2 = "12";
list1.add(a1);
a1 a2 = new a1();
a2.a1 = "21";
a2.a2 = "22";
list1.add(a2);
a1 a3 = new a1();
a3.a1 = "31";
a3.a2 = "32";
list1.add(a3);
b1 b1 = new b1();
listlistb2 = convertt1tot2(list1);
C 利用反射實現兩個類的物件之間相同屬性的值的複製
今天在拷貝物件的時候,看著 實在是有點煩,一堆一樣的 還是找找有沒有直接反射拷貝不同物件相同屬性的值 其中主要的就是下面這段 了 1 2 傳入型別b的物件b,將b與a相同名稱的值進行賦值給建立的a中 3 4 型別a5 型別b 6 型別為b的引數b 7 拷貝b中相同屬性的值的a 8public923 ...
C 用反射實現兩個類的物件之間相同屬性的值的複製
在進行實體轉換操作的時候如果需要在對兩個實體之間兩個屬性字段差不多相同的類要進行乙個互相的轉換,我們要把a物件的所有欄位的值都複製給b物件,我們只能用b.屬性 a.屬性來寫,如果屬性欄位太多的話,就要寫很多行複製語句,麻煩還容易漏掉一些,這個時候可以利用c 的反射來實現複製。我們可以寫這樣乙個利用泛...
C 用反射實現兩個類的物件之間相同屬性的值的複製
在進行實體轉換操作的時候如果需要在對兩個實體之間兩個屬性字段差不多相同的類要進行乙個互相的轉換,我們要把a物件的所有欄位的值都複製給b物件,我們只能用b.屬性 a.屬性來寫,如果屬性欄位太多的話,就要寫很多行複製語句,麻煩還容易漏掉一些,這個時候可以利用c 的反射來實現複製。我們可以寫這樣乙個利用泛...