.net новая песочница для ненадежного кода - PullRequest
3 голосов
/ 28 мая 2011

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

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

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

1 Ответ

2 голосов
/ 28 мая 2011

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

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

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

...