.net новая песочница процесса для ненадежного кода

Поэтому мне нужно запустить динамически скомпилированный ненадежный код в новом процессе. Я нашел, как это сделать в новом AppDomain (http://msdn.microsoft.com/en-us/library/bb763046.aspx), но не в новом процессе. Возможно ли это сделать?

Причина, по которой мне нужен новый процесс, заключается в том, что проще захватить стандартный вывод, увидеть потребление памяти и процессора и завершить его.

Конечная цель — написать онлайн-компилятор C#.


person ren    schedule 28.05.2011    source источник


Ответы (1)


AppDomains — это способ изолировать код .NET в системе. Процессы — это механизм изоляции операционной системы. В какой-то степени вы откажетесь от тонкостей кода .NET и будете вынуждены вручную управлять передачей данных между процессами.

Ознакомьтесь с классом Process. Похоже, вам нужно либо скомпилировать свой код в .exe, либо создать хост .exe в .NET, который загружает ваш код. Последнее кажется лучше, так как вы можете просто написать хост один раз, а затем написать стандартный код связи с этим хостом.

Вы не предоставляете много информации о своих конечных целях, но последние версии .NET предоставляют различные API подключаемых модулей, на которые стоит взглянуть.

person Brian Lyttle    schedule 28.05.2011