我正在构建一个可以与IronPython自动化的C#WebKit Web浏览器,以帮助进行质量保证测试。我将使用IronPython创建测试计划,该计划将运行许多浏览器方法,提供参数并评估结果。
IronPython的大多数文档都说明了如何使用C#调用IronPython方法,但是我已经弄清楚了如何为方法设置参数,以及如何检索方法的返回值,但不能从同一方法中返回。您将在下面的示例中注意到,我将参数传递给一个方法,该方法依次设置一个类成员变量,然后使用另一个方法检索该值。
谁能建议一个更优雅的图案?
Run Code Online (Sandbox Code Playgroud)using System; using System.Windows.Forms; using IronPython.Hosting; using Microsoft.Scripting; using Microsoft.Scripting.Hosting; namespace PythonScripting.TestApp { public partial class Form1 : Form { private ScriptEngine m_engine = Python.CreateEngine(); private ScriptScope m_scope = null; //used to call funcs by Python that dont need to return vals delegate void VoidFunc(string val); public Form1() { InitializeComponent(); } private void doSomething() { MessageBox.Show("Something Done", "TestApp Result"); } private string _rslt = ""; private string getSomething() { return _rslt; } private void setSomething(string val) …