ICANN认证国际域名顶级注册机构
网站建设,域名注册,空间租用,软件销售,广告设计 域名注册,空间租用, 网站建设,东莞网页设计,域名注册,网站推广,网站开发,网页设计 网站推广,,百度推广,新浪推广,雅虎推广,网易推广 标志设计,画册设计,包装设计,VI策划,企业形象顾问 连邦软件加盟店,提供销遥行,管家婆,速达,用友ERP,诺顿等软件报价及销售 建站必读 腾达网络,上网帮助中心, 腾达为东莞等地,提供网站建设,网站推广,广告设计,软件销售等优质服务!
建站必读


 
 
当前位置:首页 -> 建站必读 -> .NET技术
使用CodeDom来生成.cs文件
在学使用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 编程->动态生成和编译以多种语言表示的源代码
 
 
本站关键词:
|东莞电脑外包服务|东莞网页服务|东莞网站公司|东莞企业邮箱|东莞平面设计|东莞产品推广|网站建设公司|网站开发 东莞|网络公司 东莞|东莞做网站|东莞连邦软件|网页设计公司||东莞电脑外包服务|东莞网页服务|东莞网站公司|东莞企业邮箱|东莞平面设计|东莞产品推广|网站建设公司|网站开发 东莞|网络公司 东莞|东莞做网站|东莞连邦软件|网页设计公司||东莞电脑外包服务|东莞网页服务|东莞网站公司|东莞企业邮箱|东莞平面设计|东莞产品推广|网站建设公司|网站开发 东莞|网络公司 东莞|东莞做网站|东莞连邦软件|网页设计公司||东莞电脑外包服务|东莞网页服务|东莞网站公司|东莞企业邮箱|东莞平面设计|东莞产品推广|网站建设公司|网站开发 东莞|网络公司 东莞|东莞做网站|东莞连邦软件|网页设计公司||东莞电脑外包服务|东莞网页服务|东莞网站公司|东莞企业邮箱|东莞平面设计|东莞产品推广|网站建设公司|网站开发 东莞|网络公司 东莞|东莞做网站|东莞连邦软件|网页设计公司||东莞电脑外包服务|东莞网页服务|东莞网站公司|东莞企业邮箱|东莞平面设计|东莞产品推广|网站建设公司|网站开发 东莞|网络公司 东莞|东莞做网站|东莞连邦软件|网页设计公司||东莞电脑外包服务|东莞网页服务|东莞网站公司|东莞企业邮箱|东莞平面设计|东莞产品推广|网站建设公司|网站开发 东莞|网络公司 东莞|东莞做网站|东莞连邦软件|网页设计公司||东莞电脑外包服务|东莞网页服务|东莞网站公司|东莞企业邮箱|东莞平面设计|东莞产品推广|网站建设公司|网站开发 东莞|网络公司 东莞|东莞做网站|东莞连邦软件|网页设计公司||东莞电脑外包服务|东莞网页服务|东莞网站公司|东莞企业邮箱|东莞平面设计|东莞产品推广|网站建设公司|网站开发 东莞|网络公司 东莞|东莞做网站|东莞连邦软件|网页设计公司||东莞电脑外包服务|东莞网页服务|东莞网站公司|东莞企业邮箱|东莞平面设计|东莞产品推广|网站建设公司|网站开发 东莞|网络公司 东莞|东莞做网站|东莞连邦软件|网页设计公司||东莞电脑外包服务|东莞网页服务|东莞网站公司|东莞企业邮箱|东莞平面设计|东莞产品推广|网站建设公司|网站开发 东莞|网络公司 东莞|东莞做网站|东莞连邦软件|网页设计公司|
域名注册 | 虚拟主机 | 网站建设 | 网站推广 | 广告设计 | 帮助中心 | 软件中心 | 关于腾达
东莞市腾达信息工程有限公司      本站网络实名: 东莞网站建设
地址:东莞市新城市中心区第一国际B座610   邮编:523007
电话:0769-22026071 22026072 传真:0769-22026076 24小时服务热线:13712032014
© 2002~2005 腾达网络   版权所有