【发布时间】:2011-02-19 06:51:19
【问题描述】:
我在一个较大的 C# 项目的一小部分中使用 DLR,IronPython 是有问题的语言。
对于系统的某些部分,用户可以输入一个小脚本来自定义他们的行为。我想做的是能够限制它们使用无副作用的纯函数或在某种沙箱中,这样它们的函数就不能触及外部的任何东西。
另外,用户只能输入函数体,函数头和参数说明在传递给 Python DLR 引擎之前会自动预先添加到代码中,以便调用它的系统的 C# 端准确地知道参数过去和回来的东西。用户只需要完全基于作为参数提供的值进行简单的操作和测试。
例如
没关系:return (a * 100) > b;
这不行:delete_file_system(); return (a * 100) > b;
如何实现?有更合适的语言或技术选择吗?
【问题讨论】:
标签: .net ironpython dynamic-language-runtime