C#在线运行

初步完成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中。


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值