初步完成c#代码的在线编辑。    
 
首先,传回前端的c#在线代码,进行预编译,用CSharpCodeProvider这个方法。设置编译版本3.5
设置编译参数GenerateInMemory:是否在内存运行,True - memory generation, false - external file generation。
设置生成执行文件的类型GenerateExecutable:True - exe file generation, false - dll file generation。
编译后返回result结果。
 
异常处理:如果编译时发生错误,生成错误编号和错误文本信息并返回给前端。
 
找到代码中的Main方法,并运行(CompiledMethod.Invoke(null, null);)
返回结果。
 
运行示例
打开页面,有预写好的c#Hello World小程序
 
成功运行示例
 
错误运行示例,报错信息显示。
最后贴上前端ajax代码

    $("#save").click(function (e) {
e.preventDefault();
$.ajax({
type: 'POST',
url: "CompileTest",
data: { "CSharpCode": $("#CSharpCode").val() },
success: function (result) {
$("#result").text(result);
},
});
});

注:

var sw = new StringWriter();
Console.SetOut(sw);
Console.SetError(sw);

重定向console的writeLine信息到字符串sw中。

C#在线运行的更多相关文章

  1. 在线运行Javascript,Jquery,HTML,CSS代码

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" http://www.w3.org/TR/xht ...

  2. 在线运行HTML代码器

    在线运行HTML代码器(二)和前面的(一)大同小异,关键部分为JS代码,这次是把运行器所有的JS功能集中放在一起.以下为HTML代码: <!DOCTYPE html PUBLIC "- ...

  3. 通过jstack定位在线运行java系统故障_案例1

    问题描述: 在一个在线运行的java web系统中,会定时运行一个FTP上传的任务,结果有一天发现,文件正常生成后却没有上传. 问题初步分析: 1.查看日志文件 发现这个任务只打印了开始进入FTP处理 ...

  4. 网页HTML代码在线运行器

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. 实现Vue 的 markdown 文档可以在线运行(vue-markdown-run)

    闲暇时间我用Vue框架写了一个博客,编辑器是用的markdown文本的形式,介绍性+描述完全能满足我的需求,但是,如果想在线运行我markdown文本中的Vue组件代码,则无法实现了, 于是我就自己写 ...

  6. C#在线运行--cmd方法

       此次C#在线运行采用cmd.exe用csc对文件进行编译,然后再运行的思路实现在线运行的效果.不过会生成二个文件(.cs和.exe),可能需要定期清除临时文件夹. 首先利用时间戳生成唯一文件名, ...

  7. VS Code 在线运行:code-server部署(系列一)

    偶然间发现VS Code可以在线运行,闲来无事部署了一套试试效果,先上图,是不是很熟悉的感觉,初步体验基本跟本地运行效果一样. 进入正题 首先要准备一套linux环境,环境配置最低是1G内存.2核CP ...

  8. 利用btrace工具监控在线运行java程序

     一.作用 可以用于对运行中java程序进行诊断监控分析,也可以用于开发阶段查看一些异常信息或者调用过程(如有些第三方代码没有源代码,不便于debug调试). 注:如果用于对在线运行系统的诊断,需 ...

  9. 发现一个可以在线运行JS代码的网站

    平时可以在这里玩 http://jsbin.com/

随机推荐

  1. com.mysql.jdbc.exceptions.jdbc4.CommunicationsException/com.atomikos.datasource.ResourceException异常解决

    tomcat+mysql部署,每天早晨第一次访问web项目,出现mysql的连接timeout异常:com.mysql.jdbc.exceptions.jdbc4.CommunicationsExce ...

  2. EF CodeFirst简单实例

    运行环境:VS2012,添加的EntityFramework为6.0.2 版本不用太关心,只要知道原理就行了: 基本代码就这几行: namespace ConsoleApplication1 {    ...

  3. Perl 引用:引用就是指针,Perl 引用是一个标量类型可以指向变量、数组、哈希表(也叫关联数组)甚至子程序。

    Perl 引用引用就是指针,Perl 引用是一个标量类型可以指向变量.数组.哈希表(也叫关联数组)甚至子程序,可以应用在程序的任何地方. 1.创建引用1.使用斜线\定义变量的时候,在变量名前面加个\, ...

  4. Platform Dependent Compilation

    [Platform Dependent Compilation] 1.Platform Defines 2.在Project Setting -> Player 面板的Other Setting ...

  5. 这几天用高通VUFORIA的体会

    VUFORIA 主要用来做图像识别,先把图片上至网站,然后网站分析生成数据包 在UNITY中导入VUFORIA SDK和数据包后,就可以正常使用了 对了,数据包需要勾选Load Active那个选项, ...

  6. CS API 测试3

      //添加二级存储 http://192.168.150.16:8080/client/api? command=addSecondaryStorage& zoneId=7e34afc4-6 ...

  7. 相机IMU融合四部曲(三):MSF详细解读与使用

    相机IMU融合四部曲(三):MSF详细解读与使用 极品巧克力 前言 通过前两篇文章,<D-LG-EKF详细解读>和<误差状态四元数详细解读>,已经把相机和IMU融合的理论全部都 ...

  8. RCC—使用 HSE/HIS 配置时钟

    RCC :reset clock control  复位和时钟控制器:特别是要着重理解时钟树,理解了时钟树,F429 的一切时钟的来龙去脉都会了如指掌. STM32F4系列有5个时钟源: LSIRC( ...

  9. JavaScript词法作用域经典练习题

    <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8& ...

  10. 使用VM克隆CentOS后,更改网络配置

    在使用VM克隆之后,遇到一件非常郁闷的事,就算我使用‘setup’命令,修改了我的网络配置,依然无法查询到我配置的网卡,也无法开启网卡. 经过百度等一系列手段,总结如下套路--PS:朋友称之为“破釜沉 ...