2011-05-28 44 views
2

所以我需要在新進程中運行動態編譯的不可信代碼。我發現如何在新的AppDomain中執行此操作(http://msdn.microsoft.com/zh-cn/library/bb763046.aspx),但不是新的過程。有可能嗎?.net不可信代碼的新進程沙箱

我需要新進程的原因是因爲它更容易捕獲標準輸出,查看內存和CPU消耗並終止它。

最終目標是編寫在線的C#編譯器。

回答

2

AppDomains是一種在系統中隔離.NET代碼的方法。進程是用於隔離的操作系統機制。在某種程度上,你會放棄.NET代碼的優點,並且必須手動管理進程之間的數據傳輸。

查看Process班。這聽起來像是你需要將你的代碼編譯成.exe,或者在.NET中創建一個加載你的代碼的主機.exe。後者似乎更好,因爲您可以只寫一次主機,然後用該主機寫入標準通信代碼。

對於最終目標,您不提供大量信息,但最新版本的.NET提供了各種plug-in APIs,可能值得快速瀏覽。