【IT168技术文档】
做一个简单的C#在线IDE主要解决两个问题:
一是如何将网页上文本框的代码编译并执行;
二是如何将程序运行结果在网页上输出.
第一个问题不难, dotNET已经有现成的C#编译类CSharpCodeProvider(或是其它语言的),再使用CompilerParameters类做为编译参数,就可以很容易的实现.
第二个问题, 举最简单情况, 就是将Console.Write方法输出的内容在网页上显示出来.这其实也很好办,只要在编译之前, 在输出语句做一个替换, 将输出的内容存到另一个地方.等运行结束后, 再从那个地方取出来就是了.
代码实现如下:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace VSOnline.Framework { /// /// 自定义的输出类 /// public class Consoler { //存储所有输出 public static Dictionary Outputs { get; set; } static Consoler() { Outputs = new Dictionary(); } #region 输出操作 //当前输出 public List Output { get; private set; } public Consoler() { Output = new List(); } public void Write(object str) { Output.Add(str.ToString()); } public void WriteLine(object str) { Output.Add(str.ToString() + "\n"); } #endregion } }