Выполнение кода на C# или VB.NET во время выполнения
Недавно провел некоторое время на Codility.com, и это пришло мне в голову; как они выполняют код, который вы создали (в частности, C# и VB.NET)?
Что меня в основном интересует, так это как взять текстовое поле в форме, ввести в него какой-то код, а затем запустить этот код? Это возможно без сторонних инструментов?
Кроме того, как бы вы предотвратили нарушения безопасности, относящиеся к реализации такой программы через Интернет?
3 ответа
Взгляните на http://msdn.microsoft.com/en-us/library/system.codedom.compiler.aspx Выполнение такого кода в веб-приложении на самом деле является проблемой безопасности. .Net предоставляет набор функций, которые помогут вам решить эту проблему, например, возможность запуска вашего скомпилированного кода в другом домене приложения от имени другого пользователя.
С классом CSharpCodeProvider вы можете компилировать код (в виде строки) во время выполнения.
Вы можете скомпилировать код в VB.Net и C# во время выполнения. Посмотрите на код, чтобы сделать это здесь