Я использую DLR в небольшой части более крупного проекта на C #, а именно язык IronPython.
Для некоторых частей системы пользователь может ввести небольшой скрипт для настройки поведения для них.Что я хотел бы сделать, так это уметь ограничивать их использованием чистых функций без побочных эффектов или в какой-то песочнице, чтобы их функция не могла ничего касаться снаружи.
Кроме того, пользователь может ввести только тело функции, заголовок функции и спецификация аргумента автоматически добавляются в код перед передачей в движок Python DLR, чтобы сторона C # системы, которая вызывает его, зналаименно арги, чтобы пройти и что возвращается.Пользователям потребуется только выполнять простые операции и тесты, основанные исключительно на значениях, предоставленных в качестве аргументов.
например,
это нормально: return (a * 100) > b;
это не нормально: delete_file_system(); return (a * 100) > b;
Как этого достичь?Есть ли более подходящий выбор языка или технологии?