我正在一个较大的C#项目中使用DLR,使用的语言是IronPython。
对于系统的某些部分,用户可以输入小型脚本来自定义其行为。我想要做的是限制他们只能使用无副作用的纯函数或在某种沙盒中运行,以使其函数不能触碰到外部的任何东西。
此外,用户只能输入函数体,函数头和参数规定会在代码中自动添加,然后传递给Python DLR引擎,以便调用它的C#端知道需要传递的参数和返回值。用户只需要基于提供的参数进行简单操作和测试。
例如:
这个是可以的:return (a * 100) > b;
这个不可以:delete_file_system(); return (a * 100) > b;
如何实现这一点?是否有更合适的语言或技术选择?