2011-05-28 40 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,可能值得快速浏览。