1

IronPython.net 文档说程序集中的 MSIL 不符合 CLS,但有解决方法吗?

4

2 回答 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 回答