給乙個物件屬性賦值可以通過propertyinfo.setvalue()方式進行賦值,但要注意值的型別要與屬性保持一致。
建立物件例項
1>
var obj = assembly.load(
"assemblyname"
).createinstance(
"assemblyname"
+
"classfullname"
);
2>
var obj = activator.createinstance(classtype);
賦值
var property = obj.gettype().getproperty(
"propertyname"
);
//此時可以使用getproperty獲取屬性陣列,迴圈進行賦值,這裡主要講解型別問題。
1>該屬性型別是已知型別,例如:int
int
value=500;
property.setvalue(obj,value,
null
);
2>該屬性型別是已知型別,原值是其他型別。例如:目標型別為int,值為string
string
value=
"500"
;
property.setvalue(obj,
int
.tryparse(value),
null
);
//型別轉換。
3>該屬性型別是未知非泛型型別,不確定目標型別,如何進行型別轉換。
object
value=
"500"
;
property.setvalue(obj,convert.changetype(value,property.propertytype),
null
);
//型別轉換。
程式設計師的基礎教程:
菜鳥程式設計師
反射給物件賦值遇到的問題 型別轉換
給乙個物件屬性賦值可以通過propertyinfo.setvalue 方式進行賦值,但要注意值的型別要與屬性保持一致。建立物件例項的兩種方法 1.1 var obj assembly.load assemblyname createinstance assemblyname classfullnam...
深入學習C 利用反射給物件賦值
c 中利用反射能夠獲取物件的屬性資訊,也可以利用反射給物件賦值。我們如果想利用凡是給乙個物件屬性賦值可以通過propertyinfo.setvalue 方式進行賦值,但要注意值的型別要與屬性保持一致。假設我們有如下乙個結構 struct person public string name 下面一段 ...
深入學習C 利用反射給物件賦值
c 中利用反射能夠獲取物件的屬性資訊,也可以利用反射給物件賦值。我們如果想利用凡是給乙個物件屬性賦值可以通過propertyinfo.setvalue 方式進行賦值,但要注意值的型別要與屬性保持一致。假設我們有如下乙個結構 struct person public string name 下面一段 ...