c# 反射動態取值,動態賦值,動態調用函數


1. 在用lambda表達式做過濾的時候,經常會遇到過濾條件不確定的情況,我們可以用反射來實現動態條件。

list.Where(t => t.GetType().GetProperty(attrName).GetValue(t, null) != null 
&& t.GetType().GetProperty(attrName).GetValue(t, null).ToString()== compateStr)
attrName 為list中的某個字段,
compateStr為這個字段需要比較的值

2. 利用反射動態調用類庫中的方法
private PatientInfoBLL mergeBll= new PatientInfoBLL();

parameters[0] = oneValue;
parameters[1] = twoValue;    

string result = mergeBll.GetType().GetMethod(list[i].funcName).Invoke(mergeBll, parameters);
list[i].funcName 為PatientInfoBLL 類中的方法名,循環動態調用

3. 利用反射動態設置對象屬性的值
model.GetType().GetProperty(attrName).SetValue(model, value);
attrName 為model的屬性,value為需要賦給的值,兩個均可動態生成



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM