将IronPython从2.0升级到2.7的代码问题

时间:2013-12-10 16:46:18

标签: c# ironpython

我刚刚发现我们的旧IronPython DLL与.NET 4.0不兼容。我从项目中删除了旧引用,并添加了2.7.4

中的引用
  • IronPython的
  • IronPython.Modules
  • Microsoft.Dynamic
  • Microsoft.Scripting
  • Microsoft.Scripting.Metadata

我现在遇到了创建CodeContext对象的旧C#代码的问题。

    private ScriptEngine engine;
    private PythonFunction currentFunction;

    ArrayList parameters = new ArrayList();

    LanguageContext cxt = Microsoft.Scripting.Hosting.Providers.HostingHelpers.GetLanguageContext(engine);
    CodeContext context = new CodeContext(new Scope(), cxt);

    object result = currentFunction.__call__(context, parameters.ToArray());
    return result.ToString();

CodeContext构造函数需要一个PythonDictionary和一个ModuleContext作为参数,而不是我给它的东西。看起来这些年来API可能已经发生了变化。我希望我只是缺少正确的引用来允许这个旧代码编译。我对Python一无所知。也许一个简单的代码更改可以使这项工作。我可以用新的PythonDictionary()重新定义新的Scope(),但我不知道如何获得ModuleContext。任何帮助将不胜感激。

0 个答案:

没有答案