CSharpCodeProvider C#动态解析字符串 生成执行方法
来源:互联网 发布:网络直销的特点 编辑:程序博客网 时间:2024/06/04 09:39
namespace FastORM{ class Program { static void Main(string[] args) { // 1.CSharpCodePrivoder CSharpCodeProvider objCSharpCodePrivoder = new CSharpCodeProvider(); // 2.ICodeComplier ICodeCompiler objICodeCompiler = objCSharpCodePrivoder.CreateCompiler(); // 3.CompilerParameters CompilerParameters objCompilerParameters = new CompilerParameters(); objCompilerParameters.ReferencedAssemblies.Add("System.dll"); objCompilerParameters.GenerateExecutable = false; objCompilerParameters.GenerateInMemory = true; // 4.CompilerResults CompilerResults cr = objICodeCompiler.CompileAssemblyFromSource(objCompilerParameters, GenerateCode()); if (cr.Errors.HasErrors) { Console.WriteLine("编译错误:"); foreach (CompilerError err in cr.Errors) { Console.WriteLine(err.ErrorText); } } else { // 通过反射,调用HelloWorld的实例 Assembly objAssembly = cr.CompiledAssembly; object objHelloWorld = objAssembly.CreateInstance("DynamicCodeGenerate.HelloWorld"); MethodInfo objMI = objHelloWorld.GetType().GetMethod("OutPut"); Console.WriteLine(objMI.Invoke(objHelloWorld, null)); } Console.ReadLine(); } static string GenerateCode() { StringBuilder sb = new StringBuilder(); sb.Append("using System;"); sb.Append(Environment.NewLine); sb.Append("namespace DynamicCodeGenerate"); sb.Append(Environment.NewLine); sb.Append("{"); sb.Append(Environment.NewLine); sb.Append(" public class HelloWorld"); sb.Append(Environment.NewLine); sb.Append(" {"); sb.Append(Environment.NewLine); sb.Append(" public string OutPut()"); sb.Append(Environment.NewLine); sb.Append(" {"); sb.Append(Environment.NewLine); sb.Append(" return \"Hello world!\";"); sb.Append(Environment.NewLine); sb.Append(" }"); sb.Append(Environment.NewLine); sb.Append(" }"); sb.Append(Environment.NewLine); sb.Append("}"); string code = sb.ToString(); Console.WriteLine(code); Console.WriteLine(); return code; } }}
0 0
- CSharpCodeProvider C#动态解析字符串 生成执行方法
- C#动态执行字符串
- C#动态执行字符串
- CSharpCodeProvider 学习 c#
- C#动态执行一段字符串
- C#动态执行字符串(动态创建代码)
- C#动态执行字符串(动态创建代码)
- 使用CSharpCodeProvider类编译C#代码
- C#中动态执行代码,执行字符串中的代码
- C#动态执行字符串(动态创建代码)的实例代码
- 执行动态生成的SQL语句的方法
- C#动态执行代码
- C#动态执行代码
- C# 动态代码执行
- C# 动态代码执行
- C#动态执行代码
- C# 动态编译执行
- 根据数据库记录动态生成C#类及其公共属性并动态执行的解决方案
- 设置android字体
- TV tune名称解释
- Oracle中TO_DATE格式
- struts2 + ajax + json的结合使用
- Java 装饰模式
- CSharpCodeProvider C#动态解析字符串 生成执行方法
- 策略模式
- 韓長庚 先生 遺迹 1929年 (延世大學校 圖書館)
- Couldn't find a destroy method named 'false' on bean with ....
- 打开struts2.xml文件时提示 Could not open the editor: A...
- SpringMVC支持解析多视图配置
- 冒泡排序
- sudo出现 unable to resolve host xxxx的解决方法
- 判断浏览器及os版本