我想製作一個在線c#編譯器,並運行編譯後的程序並將其輸出到我的網站。輸出進程的結果
我該怎麼做?我已經理解了c#編譯器的實現,但是無法將編譯後的程序的輸出顯示在我的網站上。 process.Start
函數將啓動.exe,但是如何顯示該.exe文件的結果?
我想製作一個在線c#編譯器,並運行編譯後的程序並將其輸出到我的網站。輸出進程的結果
我該怎麼做?我已經理解了c#編譯器的實現,但是無法將編譯後的程序的輸出顯示在我的網站上。 process.Start
函數將啓動.exe,但是如何顯示該.exe文件的結果?
您需要開始使用ProcessStartInfo
對象指定RedirectStandardOutput
爲true的過程。
有什麼方法可以輸入到控制檯,以及用戶如何知道他必須輸入內容,是否有任何事件? – user1512186
然後,您還可以重定向標準輸入,請參閱http://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.redirectstandardinput.aspx。要告訴用戶輸入內容,簡單的方法是將此信息作爲程序描述與數據庫中的程序文件名相關聯,並在用戶運行程序之前顯示它。或者,您可以在程序中編寫Console.WriteLine(「請輸入內容」),因爲您已將輸出重定向,但這樣您必須在進程中保留進程/輸入/輸出。 – Diryboy
您需要在過程的redirect standard ouput。
請注意,您需要確保用戶沒有在服務器上運行任意代碼。如何防止試圖格式化光盤的C#代碼?
這是一個聰明的問題.. BTW是否有任何方式輸入到控制檯(Console.ReadLine),以及用戶將如何知道他必須輸入的東西,是否有任何事件? – user1512186
如果您使用'CSharpCodeProvider',所有凌亂的「包裝csc exe」都會爲您完成 - 您只需將結果作爲屬性進行處理即可。但是,要回顯:在您的服務器上運行任意代碼是一件非常糟糕的事情 –