首先呢,說到這個問題我們要知道泛型的概念,泛型呢你可以把它當成乙個引數,就是呼叫的時候傳入這個型別,接著就是獲取這個型別裡的所有屬性及值。
我們先來建立乙個方法名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 對上面的生成器包...