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

2022-01-12 01:27:02 字數 1805 閱讀 4719

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

1、實現實體自定義特性,繼承自attribute類

code

//////

自定義特性 屬性或者類可用  支援繼承

///[attributeusage(attributetargets.property 

|attributetargets.class, inherited 

=true

)]public

class

private

string

tablename;

//////

實體實際對應的表名

///public

string

tablename

set}

private

string

columnname;

//////

中文列名

///public

string

columnname

set}

}注釋中我已經寫的很清楚,自定義特性中的屬性乙個是實體實際對應的資料庫表名,乙個是對應的中文列名稱。

2、在實體中使用自定義特性

code

//////

會員 ,實際的表名叫memberinfo,並不是和實體名一致

///=

"memberinfo

")] 

public

class

member

set}

private

string="

會員註冊名")]

public

string

username

set}

private

string="

會員真實名")]

public

string

realname

set}

private

bool

isactive;

//////

是否活躍  沒有附加自定義屬性

///public

bool

isactive

set}

}3、顯示自定義特性

code

class

program}}

//取類上的自定義特性

object

objs 

=objtype.getcustomattributes(

typeof

true

);foreach

(object

obj in=

obj 

asif

(attr 

!=null)}

if(string

.isnullorempty(tablename))

console.writeline(

string

.format(

"the tablename of the entity is: 

", tablename));

if(listcolumnname.count 

>0)

}}static

void

main(

string

args)

}

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不是本文重點,本文不會多做說明。下面只寫個示例,簡單說明一下如何通過反射獲取自定義特性。示例只在類和屬性上使用了自定義特性。讀者可以按照實際的專案需求,合理使...