限制变量的能力
Limiting the capabilities of a variable
我按照以下示例开始使用 Iron Python:
How can I call (Iron)Python code from a C# app?
我想知道的是以下内容:我如何告诉 IronPython 每当我从给定名称空间获取对象时应该可以从脚本调用哪些方法,因为我不知道想公开命名空间的全部功能?
tl;dr :假设我公开了要在我的 python 脚本中创建的对象 A。我怎样才能限制 A 可以做什么而不必明确地将其移动到新类型?
使用类型化对象并使用 SetVariable 将它们暴露给脚本引擎。
在为此类对象定义 API 之前,还要考虑您想要向用户公开的流程。
this.proxy = new MySpecialType();
engine.GetBuiltinModule().SetVariable("proxy", this.proxy);
我按照以下示例开始使用 Iron Python: How can I call (Iron)Python code from a C# app?
我想知道的是以下内容:我如何告诉 IronPython 每当我从给定名称空间获取对象时应该可以从脚本调用哪些方法,因为我不知道想公开命名空间的全部功能?
tl;dr :假设我公开了要在我的 python 脚本中创建的对象 A。我怎样才能限制 A 可以做什么而不必明确地将其移动到新类型?
使用类型化对象并使用 SetVariable 将它们暴露给脚本引擎。
在为此类对象定义 API 之前,还要考虑您想要向用户公开的流程。
this.proxy = new MySpecialType();
engine.GetBuiltinModule().SetVariable("proxy", this.proxy);