搜尋網上資料並根據專案中的需要最終整理出來分享給大家,希望對大家有所幫助
功能:將datatable 中的colums名稱作為屬性動態新增到類中,將datatable中的第一行資料給屬性賦值
1.第一種方法 使用dynamic 支援.net4.0以上版本支援
///view code///使用dynamic根據datatable的列名自動新增屬性並賦值
//////
///
public
static
object getdynamicclassbydt(datatable dt)
return
d;}
2.第二種方法 使用反射(此方法比方法一的效能低,是通過動態生成類、並動態生成類的屬性)
///view code///使用反射 動態建立類,將datatable的列名動態新增為該類的屬性,並給屬性賦值
///該方法由於要動態建立類,效能比較低(注意只是將datatable的第一行轉換為動態實體類)
//////
///public
static
object creatnewclassbydt(datatable dt)
//建立編譯器例項。
csharpcodeprovider provider = new
csharpcodeprovider();
//設定編譯引數。
compilerparameters paras = new
compilerparameters();
paras.generateexecutable = false
; paras.generateinmemory = true
;
//建立動態**。
stringbuilder classsource = new
stringbuilder();
"public class dynamicclass \n");
""}"
); system.diagnostics.debug.writeline(classsource.tostring());
//編譯**。
compilerresults result =provider.compileassemblyfromsource(paras, classsource.tostring());
//獲取編譯後的程式集。
assembly assembly =result.compiledassembly;
object obclass = assembly.createinstance("
dynamicclass");
foreach (datacolumn cl in
dt.columns)
}return
obclass;
}
如果,您認為閱讀這篇部落格讓您有些收穫,不妨點選一下右下角的【推薦】按鈕。
如果,您希望更容易地發現我的新部落格,不妨點選一下右下角的【關注 凌雲】。
因為,我的寫作熱情也離不開您的肯定支援。
訪問類中私有屬性的方式(兩種)
1.首先要理解私有屬性 私有屬性主要是指 python中單下劃線和雙下劃線的區別 比較直白的意思是 x 單前置下劃線,私有化屬性或方法,from somemoudle import 禁止匯入,類物件和子類可以訪問 xx 雙前置下劃線,避免與子類中的屬性命名衝突,無法在外部直接訪問 名字重整所以訪問不...
Python之關於類變數的兩種賦值區別詳解
我就廢話不多說了,還是直接看 吧!coding utf 8 面試題,寫乙個方法,將一行字串中所有的單詞數量統計出來 class person object tag hello p1 person p2 person print p1.tag 第一種賦值方式 print p2.tag print pe...
C 類的兩種例項化方法
直接上 include include include using namespace std class student student student int age,string name void student show int age,string name void student s...