C 中的特性 和 通過反射獲取屬性上的特性

2021-06-26 21:54:28 字數 1007 閱讀 8579

1.了解類 attributeusage 

attributeusage 有三個 屬性 ,分別是 

public bool allowmultiple    作用:是否能在乙個目標身上多次使用

public bool inherited 作用 :特性是否能繼承到子類身上

public attributetargets validon 作用:設定特性的可使用範圍

2.了解 attributetargets 列舉

public enum attributetargets

3.自定義特性

1.所有自定義屬性都必須繼承system.attribute 

2.自定義屬性的類名稱必須為 ***xattribute 即是已attribute結尾

[attributeusage(attributetargets.property, inherited = false, allowmultiple = true)]

public class markattribute : attribute

private string _filedname;

public string filedname

set

}private string _description;

public string description

set }}

public class studententity

private string _name;

[mark("名稱", "")]

public string name

set

}}

4.通反射獲取特性

type t = typeof(studententity);

foreach (propertyinfo p in t.getproperties())

c 通過反射獲取類上的自定義特性

cplayerinfo playerinfo new cplayerinfo datatable dt new datatable dt.columns.add 屬性名稱 typeof string dt.columns.add 屬性值 typeof string datarow dr null s...

c 通過反射獲取類上的自定義特性

下面這個是筆者在以前的乙個專案中用到的。當時是為了在匯出excel報表的時侯,通過自定義特性,包含一些可配置的特性在裡面。具體的操作excel不是本文重點,本文不會多做說明。下面只寫個示例,簡單說明一下如何通過反射獲取自定義特性。示例只在類和屬性上使用了自定義特性。讀者可以按照實際的專案需求,合理使...

c 通過反射獲取類上的自定義特性

下面這個是筆者在以前的乙個專案中用到的。當時是為了在匯出excel報表的時侯,通過自定義特性,包含一些可配置的特性在裡面。具體的操作excel不是本文重點,本文不會多做說明。下面只寫個示例,簡單說明一下如何通過反射獲取自定義特性。示例只在類和屬性上使用了自定義特性。讀者可以按照實際的專案需求,合理使...