根據反射獲取物件屬性以及相應的值

2021-09-08 17:44:31 字數 3025 閱讀 4209

以itemno構造類,進行舉例執行。

getvalue獲取值,有兩個過載,一般使用的是兩個引數的,第二個引數是如果選中的model的屬性是列表索引化的話,可以放索引值,不是索引化屬性,則放null

using system;

using system.collections.generic;

using system.linq;

using system.text;

namespace ce****ype

; var itemno = new itemno() ;

for (int i = 0; i < colename.length; i++)

的值為:,型別為", colename[i], value, itemnotype.getproperty(colename[i]).propertytype);

}console.readkey();}}

public class itemno

public string name

public string gender

public int age

}}

官方例子中有給出索引屬性的方式

using system;

using system.reflection;

class example

)); }

console.writeline();

}static void showindividualcharacters(propertyinfo pinfo,

object value,

params int indexes)

: ''",

index, pinfo.getvalue(value, new object ));

console.writeline();

}

}

參照著嘗試了一下,如果在itemno類中增加個string test進行測試的話,會報引數計數不準確

using system;

using system.collections.generic;

using system.linq;

using system.text;

namespace ce****ype

; var itemno = new itemno() ;

int x = 0;

for (int i = 0; i < colename.length; i++));}

}else

value = convert.tostring(obj);

console.writeline("itemno下:的值為:,型別為", colename[i], value, itemnotype.getproperty(colename[i]).propertytype);

}console.readkey();}}

public class itemno

public string name

public string gender

public int age

public string test

}}

下面這種和官方例子差不多的寫法,倒是正常執行

using system;

using system.collections.generic;

using system.linq;

using system.text;

namespace ce****ype

; var itemno = new itemno() ;

for (int i = 0; i < colename.length; i++)

的值為:,型別為", colename[i], value, itemnotype.getproperty(colename[i]).propertytype);

}console.writeline("************************");

string x = "test";

type type = x.gettype();

for (int i = 0; i < x.length; i++)

));}

console.readkey();}}

public class itemno

public string name

public string gender

public int age

}}

type.getproperty("").getvalue(models[i], null);

標籤類

public class tag : modelbase

/// /// 產品標籤名

///

[required(errormessage = "標籤名不能為空")]

public string title

/// /// 該標籤是否顯示

///

public bool isshow

/// /// 排序,初始99

///

public int sortid

public virtual icollectionproducttags

}

var model=new tag();

type type = models[i].gettype();

type.getproperty("title").getvalue(model, null);

根據屬性名獲取相應的值

java利用反射獲取物件類名以及物件屬性名

原本想用來做搜尋的時候用,但是沒用上,所以還是貼出來。這個可以用在迴圈判斷物件的時候比較有用,如下 rr new receiveresume string a rr.getclass tostring string b a.split class cla null try catch classno...

反射獲取物件屬性含list

前言,在大型專案中很少會直接使用form提交表單到後台直接使用的。由於存在多個系統的相互呼叫,為了相容和解耦,通常會使用xml或json傳送資料。在xml轉到service中的pojo類的時候一般會使用到反射,在轉換list屬性的時候,不能直接使用類似targetfield sourcefield的...

反射的方式獲取物件中的屬性及其屬性值

之前一直不知道反射到底能用在 直到我看到了公司oa的考勤表設計 day表示每個月的天數,後面的數字表示每月的幾號,a表示上午,b表示下午。比如day01a用以表示當月1號的出勤情況。所以,這個表用以記錄考勤資料的字段共有62個。後來想用這個每天考勤資料,才發現反射真是個好東西。以三天資料為例 如果要...