作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用 IronPython 创建一个程序集,可以从 C# 调用它。这是我不问的两件事。
... calling a Python assembly from C# is non-trivial. That python assembly contains dynamic types, which are not easily reflected into useful C# objects.
double
将值导入 Python 并获得一两个
double
值回来。如果我可以传入一个字符串并返回一个字符串,那就太棒了,但我的首要任务只是来回传递数字。
最佳答案
如果您的目标是创建一个包含与 C# 创建的类型相似的类型的程序集,那么这实际上是不可能的。这里的主要问题是 Python 类型的工作方式与 CLR 类型有很大不同。一方面,它们可以在运行时发生变异,而 CLR 类型是完全静态的。因此,今天实现这一目标的唯一方法是使用托管接口(interface)创建一个小型 C# stub ,将工作委托(delegate)给 Python 代码。
IronPython 确实具有编译为程序集的能力——这就是博客文章所指的——但我们这样做主要是为了让您可以将 IronPython 应用程序部署给您的客户,而无需向他们提供源代码。
通过对此答案添加评论,随时跟进更具体的场景,我很乐意提供有关如何实现的建议。
关于assemblies - 如何在 IronPython 中创建 .NET 程序集并从 C# 调用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/561509/
我是一名优秀的程序员,十分优秀!