Безопасный или изолированный сценарий .NET DLR

Я использую DLR в небольшой части большого проекта C #, языком которого является IronPython.

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

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

например

это нормально: return (a * 100)> b;

это не нормально : delete_file_system (); return (a * 100)> b;

Как этого можно достичь? Есть ли более подходящий язык или технология?

6
задан freddy smith 18 February 2011 в 22:26
поделиться