我通过以下示例开始使用Iron Python: How can I call (Iron)Python code from a C# app?
我想知道的是:我怎么能告诉IronPython每当我从一个给定的命名空间得到一个对象时,应该可以从脚本调用哪些方法,因为我不想暴露完整的命名空间的功能?
tl; dr:假设我的对象A暴露在我的python脚本中创建。如何在不明确将其移动到新类型的情况下限制A可以做什么?
答案 0 :(得分:1)
使用类型化对象并使用SetVariable将它们公开给脚本引擎。
在定义此类对象上的API之前,请考虑要向用户公开的流程。
this.proxy = new MySpecialType();
engine.GetBuiltinModule().SetVariable("proxy", this.proxy);