IronPython.net文档说组件中的MSIL不符合CLS,但是有解决方法吗?
答案 0 :(得分:1)
这部分是将dynamic
类型添加到C#4.0的动机。最大的问题是IronPython声明不包含类型信息,这使得很难从C#中使用它。 dynamic
关键字为C#4.0添加了对此类动态类型对象的支持。例如见:
从C#3.0调用函数/对象有点烦人,但它是still possible。您只需编写foo.Invoke("Bar", 42)
之类的内容,而不只是撰写foo.Bar(42)
。
答案 1 :(得分:0)
我正在手机上打字,所以请原谅任何愚蠢的错误。要使用已编译的程序集,请确保使用clr.CompileModules编译,而不是pyc.py.然后在C#中调用Python ScriptEngine对象上的LoadAssembly方法。然后可以通过调用ScriptEngine上的ImportModule方法导入该模块。如果您可以利用动态关键字,请执行此操作。否则你会遇到一些魔法串重的GetVariable调用。另请注意,您必须以一种或另一种形式为编译的Python程序集提供标准库。