C#在线运行

匿名 (未验证) 提交于 2019-12-02 22:10:10
首先,传回前端的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#在线运行
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!