环境准备
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就可以执行,执行结果在结果框中返回。
网友评论