我刚刚发现我们的旧IronPython DLL与.NET 4.0不兼容。我从项目中删除了旧引用,并添加了2.7.4
中的引用我现在遇到了创建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。任何帮助将不胜感激。