2013-07-10 60 views
1

我想製作一個在線c#編譯器,並運行編譯後的程序並將其輸出到我的網站。輸出進程的結果

我該怎麼做?我已經理解了c#編譯器的實現,但是無法將編譯後的程序的輸出顯示在我的網站上。 process.Start函數將啓動.exe,但是如何顯示該.exe文件的結果?

+5

如果您使用'CSharpCodeProvider',所有凌亂的「包裝csc exe」都會爲您完成 - 您只需將結果作爲屬性進行處理即可。但是,要回顯:在您的服務器上運行任意代碼是一件非常糟糕的事情 –

回答

0

您需要開始使用ProcessStartInfo對象指定RedirectStandardOutput爲true的過程。

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

+0

有什麼方法可以輸入到控制檯,以及用戶如何知道他必須輸入內容,是否有任何事件? – user1512186

+0

然後,您還可以重定向標準輸入,請參閱http://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.redirectstandardinput.aspx。要告訴用戶輸入內容,簡單的方法是將此信息作爲程序描述與數據庫中的程序文​​件名相關聯,並在用戶運行程序之前顯示它。或者,您可以在程序中編寫Console.WriteLine(「請輸入內容」),因爲您已將輸出重定向,但這樣您必須在進程中保留進程/輸入/輸出。 – Diryboy

0

您需要在過程的redirect standard ouput

請注意,您需要確保用戶沒有在服務器上運行任意代碼。如何防止試圖格式化光盤的C#代碼?

+0

這是一個聰明的問題.. BTW是否有任何方式輸入到控制檯(Console.ReadLine),以及用戶將如何知道他必須輸入的東西,是否有任何事件? – user1512186