僅供個人學習
需要先引入system.codedom nuget包
1using
codegenerate.entities;
2using
system;
3using
system.codedom;
4using
system.codedom.compiler;
5using
system.collections.generic;
6using
system.reflection;
7using
system.text;89
namespace
codegenerate
1060
61//
生成**
62 codedomprovider provider = codedomprovider.createprovider("
csharp");
63 codegeneratoroptions options = new
codegeneratoroptions();
64 options.bracingstyle = "c"
;65 options.blanklinesbetweenmembers = true;66
using (system.io.streamwriter sw = new
system.io.streamwriter(outputfile))
6770}71
72public
static
void propertiesgenerate(string namespacename, string classname, typeattributes classtype, string filename, listclassinfos)
73115
116//
生成**
117 codedomprovider provider = codedomprovider.createprovider("
csharp");
118 codegeneratoroptions options = new
codegeneratoroptions();
119 options.bracingstyle = "c"
;120 options.blanklinesbetweenmembers = true
;121
using (system.io.streamwriter sw = new
system.io.streamwriter(outputfile))
122125
}126
}127 }
staticvoid generate(dictionarydic)
//新增屬性
codememberproperty property = new
codememberproperty();
property.attributes = memberattributes.public |memberattributes.final;
property.name = "id"
; property.hasget = true
; property.hasset = true
; property.type = new codetypereference(typeof
(system.string));
property.comments.add(
new codecommentstatement("
這是id屬性
"));
codemethodreturnstatement(new codefieldreferenceexpression(new codethisreferenceexpression(), "_id1")));
codeassignstatement(new codefieldreferenceexpression(new codethisreferenceexpression(), "_id2"), new codepropertysetvaluereferenceexpression()));
customerclass.members.add(property);
//新增方法(使用codemembermethod)--此處略
//新增構造器(使用codeconstructor) --此處略
//新增程式入口點(使用codeentrypointmethod) --此處略
//新增事件(使用codememberevent) --此處略
//新增特徵(使用 codeattributedeclaration)
customerclass.customattributes.add(new codeattributedeclaration(new codetypereference(typeof
(serializableattribute))));
//生成**
codedomprovider provider = codedomprovider.createprovider("
csharp");
codegeneratoroptions options = new
codegeneratoroptions();
options.bracingstyle = "c"
; options.blanklinesbetweenmembers = true
;
using (system.io.streamwriter sw = new
system.io.streamwriter(outputfile))
}
參考文章:
使用CodeDom生成程式集
using system using microsoft.csharp using system.codedom.compiler using system.codedom namespace test.cui codesnippetcompileunit cu new codesnippetcom...
動態生成CS檔案(動態生成C 類)
1.codetypedeclaration 可用於表示宣告類 結構 介面或列舉的 官方傳送門 2.codememberfield 表示某種型別的字段的宣告 官方傳送門 3.codedomprovider 可用於建立和檢索 生成器和 編譯器的例項。生成器可用於以特定的語言生成 而 編譯器可用於將 編譯...
PHP使用tcpdf類生成PDF檔案
使用pctdf生成的pdf檔案 require once tcpdf tcpdf.php 例項化 content 我是乙個pdf 你要生成的pdf內容 pdf new tcpdf p mm a4 true,utf 8 false 設定文件資訊 pdf setcreator lane pdf seta...