【发布时间】:2009-02-18 15:28:36
【问题描述】:
我想使用 IronPython 创建一个程序集,可以从 C# 调用它。这是我不要问的两件事。
我不是在问如何从 IronPython 调用 C#。最容易找到的文档描述了如何从 IronPython 内部调用 C#。 (例如,IronPython 附带的教程。)我想做相反的事情,从 C# 调用 IronPython。
我不是在问如何嵌入 IronPython 解释器。我找到了一些关于如何从 C# 调用 IronPython 解释器的有用参考资料(例如 here 和 here)。这很有帮助,但我对从 IronPython 创建编译程序集更感兴趣。也就是说,我想对 IronPython 程序集进行方法调用,而不是将源代码字符串传递给解释器。
创建程序集后,调用它有哪些技巧?我发现一个blog post说:
... 从 C# 调用 Python 程序集 是不平凡的。那个python程序集 包含动态类型,它们不是 很容易反映到有用的 C# 中 对象。
你知道在 IronPython 和 C# 之间传递基本数据类型的任何类型的备忘单吗?
更新:我现在最感兴趣的场景是将两三个 double 值传递给 Python 并返回一两个 double 值。如果我可以传入一个字符串并返回一个字符串,那就太棒了,但我的首要任务只是来回传递数字。
【问题讨论】:
-
你能把 IronPython 编译成一个 ActiveX 对象吗?如果是这样,通过 C# 使用它是不费吹灰之力的。
标签: assemblies ironpython