国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

使用CodeDom來生成.cs文件

2024-07-21 02:17:15
字體:
來源:轉載
供稿:網友
在學使用codedom來動態生成.cs文件,使用幫助里的例子,代碼居然編譯不通過
自己修改,調試通過,整理后主要代碼如下:

命名空間:
using system.codedom;
using system.codedom.compiler;
using microsoft.csharp;
using system.io;

??private void button1_click(object sender, system.eventargs e)
??{
???codecompileunit compileunit = new codecompileunit();
???codenamespace samples = new codenamespace("samples");
???samples.imports.add( new codenamespaceimport("system") );
???compileunit.namespaces.add( samples );
???codetypedeclaration class1 = new codetypedeclaration("class1");
???samples.types.add(class1);

???codeentrypointmethod start = new codeentrypointmethod();
???
???//輸出helloword
???codemethodinvokeexpression cs1 = new codemethodinvokeexpression( new
????codetypereferenceexpression("system.console"), "writeline", new
????codeprimitiveexpression("hello world!") );
???
???start.statements.add(cs1);
???

???class1.members.add( start );
???//csharpcodeprovider provider = new csharpcodeprovider();
???//icodegenerator gen = provider.creategenerator();
???generategraph(compileunit);

??}
??public void generategraph(codecompileunit compileunit)
??{
???// obtains an icodegenerator from a codedomprovider class.
???csharpcodeprovider provider = new csharpcodeprovider();
???icodegenerator gen = provider.creategenerator();
??
???// creates a streamwriter to an output file.
???streamwriter sw = new streamwriter("d://testgraph.cs", false);

???// generates source code using the code generator.
???gen.generatecodefromcompileunit(compileunit, sw, new??? codegeneratoroptions());
??
???// closes the output files.
???sw.close();
??}

??private void button2_click(object sender, system.eventargs e)
??{
???compilecode("d://testgraph.cs");
??}
??//編輯生成exe
??public compilerresults compilecode(string filepath)
??{
???// obtains an icodecompiler from a codedomprovider class.
???csharpcodeprovider provider = new csharpcodeprovider();
???icodecompiler compiler = provider.createcompiler();

???// configures a compiler parameters object which links system.dll and
???// generates a file name based on the specified source file name.
???compilerparameters cp = new compilerparameters(new string[] {"system.dll"}, filepath.substring(0, filepath.lastindexof(".")+1)+"exe", false);

???// indicates that an executable rather than a .dll should be generated.
???cp.generateexecutable = true;

???// invokes compilation.
???compilerresults cr = compiler.compileassemblyfromfile(cp, filepath);??

???// returns the results of compilation.
???return cr;???????
??}

幫助里的例子在:
.net framework->使用 .net framework 編程->動態生成和編譯以多種語言表示的源代碼

商業源碼熱門下載www.html.org.cn

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 滦南县| 都安| 新晃| 巫山县| 乌苏市| 横峰县| 太仆寺旗| 兰州市| 舒城县| 西昌市| 徐汇区| 丹江口市| 建湖县| 庐江县| 江阴市| 米林县| 桐庐县| 双江| 林甸县| 岑溪市| 永泰县| 孝义市| 祥云县| 东宁县| 张家川| 鲜城| 铁力市| 罗山县| 大荔县| 温泉县| 新河县| 当涂县| 郎溪县| 台中县| 扎囊县| 蚌埠市| 剑河县| 池州市| 娄烦县| 同德县| 迭部县|