C 如何利用反射構建Sql引數

2021-10-02 07:05:49 字數 2307 閱讀 8206

首先呢,說到這個問題我們要知道泛型的概念,泛型呢你可以把它當成乙個引數,就是呼叫的時候傳入這個型別,接著就是獲取這個型別裡的所有屬性及值。

我們先來建立乙個方法名getmysqlparame的方法,當然我這裡是以mysql的為例,有乙個引數,這個引數是我們不知道型別和屬性及值的實體,我們可以用泛型,也可以用object直接傳入。

mysql的引數是mysqlparameter陣列,所以返回值為mysqlparameter型別。

/// 

/// 構建mysql資料庫的sql引數

///

/// 實體(如:new)

/// mysqlparameter型別的sql引數陣列

public

static mysqlparameter[

]getmysqlparame

(object parameterentity)

;//定義乙個變數接收?

string ask =

"?";

//接收返回值

mysqlparameter[

] arrayparameter =

newmysqlparameter[0

];//接收屬性名和屬性值

string attribute ="";

object values =

newobject()

; list listparameter =

newlist

<

mysqlparameter

>()

;mysqlparameter parameter =

newmysqlparameter()

;//遍歷

foreach

(system.reflection.propertyinfo p in parameterentity.

gettype()

.getproperties()

)catch

(exception ex)

} arrayparameter = listparameter.

toarray()

;return arrayparameter;

}

傳值的時候記得傳入實體型別,如new)。

在附錄一下另外的用擷取字串的方法實現這個方法

/// 

/// 構建mysql資料庫的sql引數

///

/// 實體(如:new)

/// mysqlparameter型別的sql引數陣列

public

static mysqlparameter[

]getsqlparame

(object parameterentity)

; list listparameter =

newlist

<

mysqlparameter

>()

;mysqlparameter parameter =

newmysqlparameter()

; string[

] parameterentityarray = parameterentity.

tostring()

.trim(''

).split

(',');

for(

int i =

0; i < parameterentityarray.length; i++)"

, parameterentityarray[i]

.split

('=')[

0]);

values = parameterentityarray[i]

.split

('=')[

1].replace

(" ",""

);parameter =

newmysqlparameter

(attribute.

replace

(" ",""

), values.

replace

(" ",""

)); listparameter.

add(parameter);}

catch

(exception

) arrayparameter = listparameter.

toarray()

;}return arrayparameter;

}

C 筆記 利用XML檔案構建反射表機制

在設計程式時,無論是介面或是後台 我們通常都想留給使用者乙個較為簡單的介面。而我在參與封裝語音卡開發函式包的時候,發現各種語音卡的底層函式的介面都是各種整形變數標記值,使用起來極為不變。於是就理解了前輩所寫的 中,利用xml構建反射表機制的初衷。下面我就以某一種語音卡所能相容的語音格式為例,將反射表...

C 配合利用XML檔案構建反射表機制

在設計程式時,無論是介面或是後台 我們通常都想留給使用者乙個較為簡單的介面。而我在參與封裝語音卡開發函式包的時候,發現各種語音卡的底層函式的介面都是各種整形變數標記值,使用起來極為不變。於是就理解了前輩所寫的 中,利用xml構建反射表機制的初衷。下面我就以某一種語音卡所能相容的語音格式為例,將反射表...

C 模板構建反射

template class ccreategeneralpool ccreategeneralpool public classtype create template classtype create tparams params void free classtype obj 對上面的生成器包...