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中。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM