C 利用反射 特性實現簡單的實體對映資料庫操作類

2021-09-06 12:58:55 字數 3852 閱讀 7492

附上源**:

1

using

system;

2using

system.collections.generic;

3using

system.data;

4using

system.linq;

5using

system.text;

6using

system.threading.tasks;78

namespace

反射_特性920

21}2223

private

dbtype _dbtype;

24///

25///

字段型別

26///

27public

dbtype dbtype

283031}

3233

private

int_valuelength;

34///

35///

字段值長度

36///

37public

intvaluelength

384041}

42///

43///

建構函式

44///

45///

欄位名46

///字段型別

47///

字段值長度

48public fieldattribute(string fields, dbtype types, int

i)4955}

56 }

2:表名特性

1

using

system;

2using

system.collections.generic;

3using

system.linq;

4using

system.text;

5using

system.threading.tasks;67

namespace

反射_特性819

}20///21

///定位函式對映表名;

22///

23///

24public tableattribute(string

table)

2528

}29 }

3:特性測試類

1

using

system;

2using

system.collections.generic;

3using

system.data;

4using

system.linq;

5using

system.text;

6using

system.threading.tasks;78

namespace

特性_反射921

set 22}

2324

private

string

_psw;

25///

26///

登陸密碼

27///

28 [field("

consumerpwd

", dbtype.string, 12

)]29

public

string

u_psw

3032

set 33}

3435

private

string

_username;

36///

37///

使用者別稱

38///

39 [field("

consumername

", dbtype.string, 50

)]40

public

string

u_username

4143

set 44}

4546

private

string

_city;

47///

48///

所住城市

49///

50 [field("

usercity

", dbtype.string, 50

)]51

public

string

u_city

5254

set 55}

5657

private

int_popedom;

58///

59///

許可權60

///61 [field("

popedom

", dbtype.int32, 0

)]62

public

intu_popedom

6365

set 66}

6768

private

datetime _adddatatime;

69///

70///

註冊時間

71///

72 [field("

adddatatime

", dbtype.date, 0

)]73

public

datetime u_adddatatime

7476

set 77}

7879

private

int_***;

80///

81///

性別82

///83 [field("

***", dbtype.int32, 0

)]84

public

intu_***

8587

set 88}

8990

private

int_birthtime;

91///

92///

出身日期;

93///

94 [field("

birthtime

", dbtype.string, 9

)]95

public

intu_birthtime

9698

set 99}

100}

101 }

4:測試控制台程式

userinf userss = new

userinf();

userss.u_userid = "

aw12311";

userss.u_psw = "

123"

; userss.u_username = "aw"

; userss.u_city = "武漢"

; userss.u_popedom = 1

; userss.u_*** = 1

; userss.u_birthtime = 19900114

; userss.u_adddatatime =datetime.now;

dateistableattribute

t = new dateistableattribute();

response.write(

"" + t.insertdate(userss));

C 利用反射實現實體類List索引器

在專案開發中,我們經常會自定義一些實體類,在某些需要動態賦值的功能中,我們無法知道到下乙個需要賦值的欄位名稱是什麼,只知道會從其他返回需要賦值的欄位名稱和值,這時候就需要實現索引器了,就像c datatable中的行索引器一樣,可以根據欄位名稱實現查詢和賦值,如下所示 datatable dt ne...

C 反射機制的簡單實現

c 並不支援反射機制,只能自己實現。如果需要實現字字串到函式到對映,一定要使用到函式指標。簡單實現反射機制,根據字串來構造相應到類。主要有以下幾點 1 可以使用map儲存字元從到函式指標到對映。2 工廠類提供字串與函式指標到註冊關係。3 工廠模式根據不同到字串構造不同到類物件。示例 class fa...

C 反射機制的簡單實現

c 並不支援反射機制,只能自己實現。如果需要實現字字串到函式到對映,一定要使用到函式指標。簡單實現反射機制,根據字串來構造相應到類。主要有以下幾點 1 可以使用map儲存字元從到函式指標到對映。2 工廠類提供字串與函式指標到註冊關係。3 工廠模式根據不同到字串構造不同到類物件。示例 class fa...