五一时去朋友那, 他问了个小问题, 只要写几十行代码就可以很好的说明问题.可偏偏机子没装VS, 只好做罢.回来后想想, 要是有个在线的C#IDE就好了.于是上网查了下相关的资料,  整出来个简单的在线C#IDE.
      做这个,主要要解决两个问题, 一是如果将网页上文本框的代码编译并执行;二是如果将程序运行结果在网页上输出.
      第一个问题不难, .NET已经有现成的C#编译类CSharpCodeProvider(或是其它语言的),再使用CompilerParameters类做为编译参数,就可以很容易的实现.
      第二个问题, 举最简单情况, 就是将Console.Write方法输出的内容在网页上显示出来.这其实也很好办,只要在编译之前, 在输出语句做一个替换, 将输出的内容存到另一个地方.等运行结束后, 再从那个地方取出来就是了.
     代码实现如下:

一个极其简单的在线C#IDE例子using System;
一个极其简单的在线C#IDE例子
using System.Collections.Generic;
一个极其简单的在线C#IDE例子
using System.Linq;
一个极其简单的在线C#IDE例子
using System.Text;
一个极其简单的在线C#IDE例子
一个极其简单的在线C#IDE例子
namespace VSOnline.Framework
}

 

一个极其简单的在线C#IDE例子using System;
一个极其简单的在线C#IDE例子
using System.Reflection;
一个极其简单的在线C#IDE例子
using Microsoft.CSharp;
一个极其简单的在线C#IDE例子
using System.CodeDom.Compiler;
一个极其简单的在线C#IDE例子
using System.Collections.Generic;
一个极其简单的在线C#IDE例子
using System.Linq;
一个极其简单的在线C#IDE例子
using System.Web;
一个极其简单的在线C#IDE例子
一个极其简单的在线C#IDE例子
namespace VSOnline.Framework


     测试:

一个极其简单的在线C#IDE例子using VSOnline.Framework;
一个极其简单的在线C#IDE例子
using Microsoft.VisualStudio.TestTools.UnitTesting;
一个极其简单的在线C#IDE例子
using System.Collections.Generic;
一个极其简单的在线C#IDE例子
using System;
一个极其简单的在线C#IDE例子
using FastDev.Core;
一个极其简单的在线C#IDE例子
using System.Linq;
一个极其简单的在线C#IDE例子
一个极其简单的在线C#IDE例子
namespace Test

 
然后只要搬到Web上就可以了, 截图:

一个极其简单的在线C#IDE例子

完整程序下载 : VSOnline.rar

相关文章:

  • 2022-02-25
  • 2021-12-30
  • 2021-04-27
猜你喜欢
  • 2021-06-02
  • 2022-03-09
  • 2021-10-23
  • 2022-12-23
相关资源
相似解决方案