C#+IronPython编程历险记

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

2019-05-15  本文已影响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就可以执行,执行结果在结果框中返回。

上一篇 下一篇

猜你喜欢

热点阅读