手机
当前位置:查字典教程网 >编程开发 >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#把文件转换为XML的代码

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

在Winform动态启动、控制台命令行的方法

C# Dictionary的使用实例代码

C#利用ScriptControl动态执行JS和VBS脚本

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

C#动态执行字符串(动态创建代码)的实例代码

c#获取本机的IP地址的代码

c#给图片添加文字的代码小结

c# 服务器上传木马监控代码(包含可疑文件)

精品推荐
分类导航