手机
当前位置:查字典教程网 >编程开发 >C#教程 >使用 C# 动态编译代码和执行的代码
使用 C# 动态编译代码和执行的代码
摘要:复制代码代码如下:/**使用C#动态编译代码和执行*作者:yaob*/staticvoidMain(string[]args){//编译器C...

复制代码 代码如下:

/*

* 使用 C# 动态编译代码和执行

* 作者: yaob

*/

static void Main(string[] args)

{

// 编译器

CodeDomProvider cdp = CodeDomProvider.CreateProvider("C#");

// 编译器的参数

CompilerParameters cp = new CompilerParameters();

cp.ReferencedAssemblies.Add("System.dll");

cp.GenerateExecutable = false;

cp.GenerateInMemory = true;

// 编译结果

CompilerResults cr = cdp.CompileAssemblyFromSource(cp, HelloWorld());

if (cr.Errors.HasErrors) Console.WriteLine("编译出错!");

else

{

// 编译后的程序集

Assembly ass = cr.CompiledAssembly;

// 得到HelloWorld类中的SayHello方法

Type type = ass.GetType("HelloWorld.HelloWorld");

MethodInfo mi = type.GetMethod("SayHello");

// 执行

mi.Invoke(null, null);

}

}

// 动态构建的代码

static string HelloWorld()

{

StringBuilder sbCode = new StringBuilder();

sbCode.AppendLine("using System;");

sbCode.AppendLine("namespace HelloWorld");

sbCode.AppendLine("{");

sbCode.AppendLine(" class HelloWorld");

sbCode.AppendLine(" {");

sbCode.AppendLine(" public static void SayHello()");

sbCode.AppendLine(" {");

sbCode.AppendLine(" Console.WriteLine("Hello~ World~!");");

sbCode.AppendLine(" }");

sbCode.AppendLine(" }");

sbCode.AppendLine("}");

return sbCode.ToString();

}

【使用 C# 动态编译代码和执行的代码】相关文章:

C# 多线程读取注册表,加载至TreeView

C# DataGridView添加新行的2个方法

C# Dictionary的使用实例代码

使用Deflate算法对文件进行压缩与解压缩的方法详解

比较有效的使用C#读取文件的代码

C# 正则判断一个数字的格式是否有逗号的代码

C# TreeView控件使用代码

简介C#读取XML的两种方式

C# 获取程序集版本、文件版本

C#泛型编程介绍

精品推荐
分类导航