美文网首页C#+IronPython编程历险记
在C#项目中使用IronPython执行py脚本

在C#项目中使用IronPython执行py脚本

作者: 我自由吗 | 来源:发表于2019-05-15 10:05 被阅读0次

    环境准备

    1)需要到IronPython下载https://ironpython.net/download/,发文时刻,最新版是2.7.9,不过这个要求.net 的版本为4.5,而我的项目是.net 4.0,于是找到了2.7.8版本,支持.net 4.0。读者可视情况自行选择。

    下载后解压是这样的

    2)我还是用的VS2010+.net framework 4.0。其他环境没最终测试过,不好说。

    开始工作

    如何新建C#项目等等基本操作就不说了,重点讲干货。

    1)项目中需要做引用,如下图:

    这4个文件在IronPython的压缩包中都有。最好引用全,不然执行时可能会报各种意想不到的错误,很难查。

    2)IronPython的调用很简单,没什么可说的,大家看下就懂:

    string pyContent = tbxPythonString.Text;

    Microsoft.Scripting.Hosting.ScriptEngine engine = IronPython.Hosting.Python.CreateEngine();

    Microsoft.Scripting.Hosting.ScriptScope scope = engine.CreateScope();

    Microsoft.Scripting.Hosting.ScriptSource script = engine.CreateScriptSourceFromString(pyContent);

    var code = script.Compile();

    var excuteResult = code.Execute(scope);

    var _func = scope.GetVariable(tbxFunName.Text);

    if (string.IsNullOrEmpty(tbxParam2.Text))

    {

        var CustomerData = _func(tbxParam1.Text);

        tbxLogs.Text = CustomerData.ToString();

    }

    else

    {

        var CustomerData = _func(tbxParam1.Text, tbxParam2.Text);

        tbxLogs.Text = CustomerData.ToString();

    }

    3)为了方便测试,我专门为做了一个界面:

    脚本可以自行修改,输入函数名和参数1、参数2就可以执行,执行结果在结果框中返回。

    相关文章

      网友评论

        本文标题:在C#项目中使用IronPython执行py脚本

        本文链接:https://www.haomeiwen.com/subject/xmyuaqtx.html