Это зависит от того, что вы хотите с этим сделать, но один из возможных способов решить эту проблему - использовать сборку Microsoft.JScript.Хотя JScript немного отличается от C #, большая часть синтаксиса одинакова или похожа.Более того, JScript основан на глобальной области видимости, поэтому не нужно также оборачивать код, сгенерированный в методе.
При выполнении шагов вы должны сделать следующее:
- изменитькод, полученный из базы данных, чтобы быть действительным JScript (с использованием строковых методов и, возможно, большого количества Regex)
- Получить экземпляр компилятора JScript
- Скомпилировать код в сборку
- Запустите сборку с некоторыми входными данными.
Но так как это довольно тяжело при создании типов / сборок (которые не могут быть выгружены), я бы рекомендовал (используя описанный выше метод) скомпилироватьпростая оболочка для функции jscript eval () и просто предоставление вашего jscript для этого кода.Тогда вам не придется беспокоиться о компиляции и т. Д.
Будьте осторожны при создании динамического кода.Вся платформа .Net будет доступна для использования, поэтому, если вы не будете полностью доверять источнику условий или не ограничите скомпилированную сборку, может произойти неприятный материал.