C#实现动态编译代码
/*------------------------------------------------------------------------------* Copyright (C) 2013 * 版权所有。* * 文件名: Compile.cs* 功能說明: ** 創建人: it_Eric* 創建時間: 2013/10/25 16:19:52* * 修改人: * 修改說明: * *-----------------------------------------------------------------------------*/ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.CodeDom.Compiler; using Microsoft.CSharp; using System.IO; using System.Reflection;namespace TestDemo {public class Compile{private string prefix = "using System;" +"public static class Driver" +"{" +"public static void Run()" +"{";private string postfix ="}" +"}";public string CompileAndRun(string input, out bool hasError){hasError = false;string returnData = null;CompilerResults results = null;using (var provider = new CSharpCodeProvider()){var options = new CompilerParameters();options.GenerateInMemory = true;var sb = new StringBuilder();sb.Append(prefix);sb.Append(input);sb.Append(postfix);results = provider.CompileAssemblyFromSource(options, sb.ToString());}if (results.Errors.HasErrors){hasError = true;var errorMessage = new StringBuilder();foreach (CompilerError error in results.Errors){errorMessage.AppendFormat("{0}{1}", error.Line, error.ErrorText);returnData = errorMessage.ToString();}}else{TextWriter temp = Console.Out;var writer = new StringWriter();Console.SetOut(writer);Type drivertype = results.CompiledAssembly.GetType("Driver");drivertype.InvokeMember("Run", System.Reflection.BindingFlags.InvokeMethod | BindingFlags.Static | BindingFlags.Public, null, null, null);Console.SetOut(temp);returnData = writer.ToString();}return returnData;}} }
C#实现动态编译代码相关推荐
- python 动态编译代码_使用PyQt(Python+Qt)+动态编译36行代码实现的计算器
PyQt是基于跨平台的图形界面C++开发工具Qt加Python包装的一个GPL软件(GPL是GNU General Public License的缩写,是GNU通用公共授权非正式的中文翻译),Qt基于 ...
- python 动态编译代码_编译Python代码以使用Cython静态链接可执行文...
经验丰富的问题??显然来自链接器(gcc在引擎盖下启动了一个链接器,看到它 – 只需用详细模式启动带有-v的gcc).那么让我们先简要提醒链接过程如何工作: 链接器保留其需要解析的所有符号的名称.在开 ...
- python 动态编译代码,Python:在运行时动态创建函数
How to dynamically create a function in Python? I saw a few answers here but I couldn't find one whi ...
- eclipse编译java项目class文件_动态编译 Java 代码以及生成 Jar 文件
导读: 最近在看 Flink 源码的时候发现到一段实用的代码,该代码实现了 java 动态编译以及生成 jar 文件.将其进行改进后可以应用到我们的平台上,实现在平台页面上编写 java 代码语句,提 ...
- Java脚本引擎执行js代码以及动态编译
Java脚本引擎执行js代码 一.概述 JAVA脚本引擎是从JDK6.0之后添加的新功能. 使得 Java 应用程序可以通过一套固定的接口与各种脚本引擎交互,从 而达到在 Java 平台上调用各种脚本 ...
- QtCreator动态编译jsoncpp完美支持x86和arm平台
如果是做嵌入式开发. 在Qt下支持JSon最好的办法,可能不是采用qjson这个库.QJson这个库的实例只提供了x86环境下的编译方法. Installing QJson ------------- ...
- Java_JAVA6动态编译的问题
摘自:http://www.iteye.com/problems/14909 在使用JAVA6动态编译时遇到的一个问题,动态编译方法已经写就.通过main方法调用的动态编译时,编译通过,并可以使用编译 ...
- 趁周末,来学点进阶知识:Java 动态编译
来源 | https://zhenbianshu.github.io 问题 之前的文章从Spring 的环境到 Spring Cloud 的配置中提到过,我们在使用 Spring Cloud 进行动态 ...
- python动态执行代码_第6.6节 Python动态执行小结
一. Python动态执行支持通过输入数据流或文件传入Python源代码串,进行编译后执行,可以通过这种方式扩展Python程序的功能: 二. 动态执行方法可能导致恶意攻击,因此使用时需要 ...
最新文章
- 数组的选择--固定大小数组模板array存在的意义!
- prometheus下载慢_Prometheus + Grafana 监控 SpringBoot
- document.getElementByName()的用法
- void main()是错误的
- SuperMap iDesktopX _ 高德POI数据下载
- 如何构建自己的计算机,第四部分:安装Windows和加载驱动程序
- xposed+justTrustme使用与分析
- ubuntu系统打开.chm文件方式
- .so文件(so文件是什么)
- 团队开发之Git管理及使用
- 基于粒子群算法的组卷系统的研究与实现
- uniGUI获取设备信息
- 杨百万:上周四全仓杀入股市 这波反弹不是牛市新起点
- java获取jdk存放路径,javac.exe命令文件存放在JDK安装目录的lib目录下。()
- surfaceflinger原理讲解
- EZDML3.31发布 支持从数据库获取测试数据
- SpringMVC操作全攻略
- HTML-参考手册: Px、Em 换算工具
- 文件包含漏洞及PHP伪协议
- 什么是活锁和饥饿?及示例
热门文章
- 14、mybatis多表关联查询 association定义关联对象封装规则及懒加载
- java B2B2C电子商务平台分析之八--配置中心svn示例和refresh
- 单细胞数据初步处理 | drop-seq | QC | 质控 | 正则化 normalization
- 关于 React ,npm run build 资源引用丢失
- Python3 django2.0 字段加密 解密 AES
- 解决ntp的错误 no server suitable for synchronization found
- java中Class.getResource用法(用于配置文件的读取)
- 【CSS】背景遮罩层各种情况下,CSS样式
- 命令2-Create Project Tree
- 苹果如果无法弹出⏏️