C#通過反射獲取類自定義特性描述列表

C#通過反射獲取類自定義特性描述列表

ID:40740492

大?。?9.50 KB

頁數(shù):4頁

時(shí)間:2019-08-07

C#通過反射獲取類自定義特性描述列表_第1頁
C#通過反射獲取類自定義特性描述列表_第2頁
C#通過反射獲取類自定義特性描述列表_第3頁
C#通過反射獲取類自定義特性描述列表_第4頁
資源描述:

《C#通過反射獲取類自定義特性描述列表》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、C#通過反射獲取類自定義特性描述列表OO真的是個(gè)有趣的東西,我們都知道,創(chuàng)建類的時(shí)候,我們可以聲明屬性(property)、字段(field)等,而特性(Attribute)為人注意。在.NET中,特性使用,可分為.NET自帶特性(如Description)和自定義特性。由于需求需要,本人粗淺研究了一下自定義特性的使用,下面就返回類的自定義特性描述列表進(jìn)行梳理。自定義特性類:publicclassImportHeaderAttribute:System.Attribute { publicstringImportHeader{get;set;} publicintInd

2、ex{get;set;} publicImportHeaderAttribute(stringheader,intindex) { ImportHeader=header; Index=index; } }獲取類自定義特性描述列表方法:///

///獲取類自定義特性描述列表 /// ///目標(biāo)類 ///自定義特性類 ///自定義特性 ///

3、ame="index">排序特性(升序),默認(rèn)null不排序 ///返回類自定義特性描述列表,Key:屬性(字段),value:特性描述 publicstaticIList>GetDescriptionList(stringcusName,stringindex=null) { try { List>classList=newList>();

4、List>indexList=newList>(); stringkey=string.Empty; stringvalue=string.Empty; #region循環(huán)目標(biāo)類屬性 foreach(PropertyInfoprointypeof(T).GetProperties())//循環(huán)目標(biāo)類屬性{ varattridures=pro.GetCustomAttributes(typeof(A),true);//自定義特性集合 key=pro.Name;

5、 Aa=default(A); foreach(objectattinattridures) { a=(A)att;//轉(zhuǎn)換為自定義特性類對象 varaInfo=a.GetType().GetProperty(cusName);//獲取對應(yīng)特性的屬性對象 if(aInfo!=null) { value=aInfo.GetValue(a).ToString(); classList.Add(newKeyValuePair(key,value));//賦值} if(!string.IsNullOrEmpty(index)) { varaIn

6、fo2=a.GetType().GetProperty(index); if(aInfo2!=null) { value=aInfo2.GetValue(a).ToString(); indexList.Add(newKeyValuePair(key,value)); } } } } #endregion #region循環(huán)目標(biāo)類字段 foreach(FieldInfoFieldintypeof(T).GetFields()) { varattridures=Field.GetCustomAttributes(typeof(A),true

7、);//自定義特性集合 key=Field.Name; Aa=default(A); foreach(objectattinattridures) { a=(A)att;//轉(zhuǎn)換為自定義特性類對象 varaInfo=a.GetType().GetProperty(cusName);//獲取對應(yīng)特性的屬性對象 if(aInfo!=null) { value=aInfo.GetValue(a).ToString(); classList.Add(newKeyValuePair(key,value

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。