国产探花免费观看_亚洲丰满少妇自慰呻吟_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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 九台市| 通辽市| 都匀市| 隆昌县| 桂平市| 兴海县| 三江| 山丹县| 邯郸市| 三原县| 紫金县| 将乐县| 府谷县| 旺苍县| 长海县| 渭南市| 石柱| 沈丘县| 阿克陶县| 崇义县| 卢氏县| 淳化县| 嘉峪关市| 建平县| 柳河县| 启东市| 信宜市| 邻水| 大足县| 东莞市| 兖州市| 南丹县| 永平县| 驻马店市| 漠河县| 昌黎县| 昭平县| 华阴市| 彩票| 宁国市| 石河子市|