IronPython.net 文档说程序集中的 MSIL 不符合 CLS,但有解决方法吗?
问问题
300 次
2 回答
1
dynamic
这在一定程度上是将该类型添加到 C# 4.0的动机。最大的问题是 IronPython 声明不包含类型信息,这使得在 C# 中使用它很困难。该dynamic
关键字在 C# 4.0 中添加了对此类动态类型对象的支持。参见例如:
从 C# 3.0 调用函数/对象有点烦人,但仍然可以。您只需要编写类似的东西,foo.Invoke("Bar", 42)
而不仅仅是编写foo.Bar(42)
.
于 2010-09-25T23:30:39.717 回答
0
我在手机上输入这个,所以请原谅任何愚蠢的错误。要使用已编译的程序集,请确保使用 clr.CompileModules 而不是 pyc.py 进行编译。然后在 C# 中调用 Python ScriptEngine 对象的 LoadAssembly 方法。然后可以通过调用 ScriptEngine 上的 ImportModule 方法来导入模块。如果您可以从那里利用动态关键字,请这样做。否则,您将被一些对 GetVariable 的大量魔术字符串调用所困。另请注意,您必须以一种或另一种形式向已编译的 Python 程序集提供标准库。
于 2010-09-30T23:35:56.613 回答