似乎只有一个简单的错误,我无法弄清楚。我在C#WPF应用程序中使用IronPython,尝试从自定义C#类运行函数时遇到以下错误:AttributeError: 'MyScriptingFunctions' object has no attribute 'Procedure'。我正在运行的python脚本非常简单,有两行。第1行执行正常,错误发生在第2行。 txt.Text = "some text" MyFunc.Procedure(5)MyScriptingFunctions.cs:class MyScriptingFunctions{ public MyScriptingFunctions() {} public void Procedure(int num) { Console.WriteLine("Executing procedure " + num); }}这是我设置IronPython引擎的方式: private void btnRunScript_Click(object sender, RoutedEventArgs e) { MyScriptingFunctions scriptFuncs = new MyScriptingFunctions(); ScriptEngine engine = Python.CreateEngine(); ScriptScope scope = engine.CreateScope(); ScriptRuntime runtime = engine.Runtime; runtime.LoadAssembly(typeof(String).Assembly); runtime.LoadAssembly(typeof(Uri).Assembly); //Set Variable for the python script to use scope.SetVariable("txt", fullReadResultsTextBox); scope.SetVariable("MyFunc", scriptFuncs); string code = this.scriptTextBox.Text; try { ScriptSource source = engine.CreateScriptSourceFromString(code, SourceCodeKind.Statements); source.Execute(scope); } catch (Exception ex) { ExceptionOperations eo; eo = engine.GetService<ExceptionOperations>(); string error = eo.FormatException(ex); MessageBox.Show(error, "There was an Error"); return; } }我只是在设置两个变量:txt哪个是type System.Windows.Controls.TextBox,MyFunc哪个是我的自定义类的对象MyScriptingFunctions。我在做什么错,为什么python脚本正确执行TextBox方法而不是自定义类的方法?
1 回答

HUH函数
TA贡献1836条经验 获得超4个赞
我唯一可以看到的可能是问题,或者只是复制粘贴错误,原因是MyScriptingFunctions
in not public
。这不应该是一个问题,因为您要传入一个实例,而不是尝试导入该类,但这值得一试。否则,一切看起来都很好。
添加回答
举报
0/150
提交
取消