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