VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > 汇编语言 >
  • C#教程之使用 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(); 

相关教程