c#中利用反射能夠獲取物件的屬性資訊,也可以利用反射給物件賦值。
我們如果想利用凡是給乙個物件屬性賦值可以通過propertyinfo.setvalue()方式進行賦值,但要注意值的型別要與屬性保持一致。
假設我們有如下乙個結構:
struct person
public
string name
}
下面一段**,展示了如何利用反射來給物件賦值:
person item=new person();
propertyinfo props=p.gettype().getproperties();
props.tolist().foreach(
pi=>
}else
}});
pi.setvalue(item, convert.changetype(pi.getvalue(p), pi.propertytype))
pi.setvalue(item, convert.changetype(pi.getvalue(p), nullable.getunderlyingtype(pi.propertytype)))
這兩行**,分別是給非泛型屬性賦值和給泛型屬性賦值。
深入學習C 利用反射給物件賦值
c 中利用反射能夠獲取物件的屬性資訊,也可以利用反射給物件賦值。我們如果想利用凡是給乙個物件屬性賦值可以通過propertyinfo.setvalue 方式進行賦值,但要注意值的型別要與屬性保持一致。假設我們有如下乙個結構 struct person public string name 下面一段 ...
C 深入學習 反射
目錄 一 概述 二 基本使用 2.1 獲取程式類容基本步驟 2.2 使用舉例 2.2.1 建立物件 訪問設定屬性值 使用其中無參方法 2.2.2 建立帶參建構函式並訪問其中帶參方法 2.2.3 反射過載過的方法 2.2.4 反射泛型類和泛型方法 2.2.5 反射型別中的私有類容 屬性 方法 2.2....
C 反射給物件賦值遇到的問題 型別轉換
給乙個物件屬性賦值可以通過propertyinfo.setvalue 方式進行賦值,但要注意值的型別要與屬性保持一致。建立物件例項 1 var obj assembly.load assemblyname createinstance assemblyname classfullname 2 var...