美文网首页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