【问题标题】:Output the result of a process输出一个过程的结果
【发布时间】:2013-07-10 06:39:46
【问题描述】:

我想做一个在线c#编译器,同时运行编译后的程序并将其输出到我的网站。

我该怎么做?我已经了解 c# 编译器的实现,但无法在我的网站上显示已编译程序的输出。 process.Start 函数只会启动 .exe,但如何显示该 .exe 文件的结果?

【问题讨论】:

  • 如果你使用CSharpCodeProvider,所有凌乱的“打包csc exe”都会为你完成——你只需将结果作为属性处理。但是,要回应:在您的服务器上运行任意代码是一件非常糟糕的事情

标签: c# online-compilation


【解决方案1】:

您需要使用ProcessStartInfo 对象来启动进程,将RedirectStandardOutput 指定为true。

http://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.redirectstandardoutput.aspx

【讨论】:

  • 有什么方法可以输入到控制台,用户怎么知道他必须输入一些东西,有什么事件吗??
  • 那么你也可以重定向标准输入,见msdn.microsoft.com/en-us/library/…。为了告诉用户输入一些东西,简单的方法是将此信息作为程序描述与数据库中的程序文​​件名相关联,并在用户运行程序之前显示它。或者您可以在程序中编写 Console.WriteLine("Please input something"),因为您已经重定向了输出,但是这样您就必须将进程/输入/输出保留在会话中。
【解决方案2】:

你需要redirect standard ouput你的进程。

请注意,您需要确保用户没有在您的服务器上运行任意代码。您如何防止 C# 代码尝试格式化您的光盘?

【讨论】:

  • 这是一个聪明的问题..顺便说一句,有什么方法可以输入到控制台(Console.ReadLine),用户怎么知道他必须输入一些东西,有什么事件吗?
猜你喜欢
  • 2014-12-02
  • 2019-11-08
  • 1970-01-01
  • 2017-04-23
  • 1970-01-01
  • 2011-06-07
  • 2016-09-14
  • 2017-03-01
  • 2018-06-13
相关资源
最近更新 更多