利用C#4.0调用IronPython脚本
微软还没有将IronPython的库集成进来,所以在VS2010中调用IronPython,先要到CodePlex上下载IronPythonFor .NET4.0的安装程序,Url:http://ironpython.codeplex.com/releases/view/40146。2. 编写一个IronPython脚本文件“Test.py”,代码如下:
#coding gb2312
import clr
class MyService(object):
def GetData(self, value):
return "hello" + value
def MyFunction(name):
return "hello " + name
在该脚本中定义了一个MyService类,在MyService类中定义了一个GetData方法。在该脚本中同时又定义了一个MyFunction的函数。
3. 建立一个应用程序,并引用刚才下载的IronPython安装目录下的几个DLL文件,如下所示:
4. 将Python脚本放在应用程序所在的目录,用来调用的C#代码如下所示:
var python = Python.CreateRuntime();
dynamic script= python.UseFile("a.py");
//调用Python里的类
var service = script.MyService();
string result=service.GetData("aaa");
MessageBox.Show(result);
//调用中的函数
result = script.MyFunction("aaa");
MessageBox.Show(result );
5. 这里比较重要的是dynamic关键字的使用,它可以实现代码的运行时载入,速度会比反射要稍快点。
这是本人从别处看到的,解决了我目前项目界面语言和核心程序语言之间的问题,希望给大家启示,共同学习!
--------------------编程问答-------------------- 留个记号,以后要是学IronPython的话看看,谢谢楼主分享 --------------------编程问答-------------------- --------------------编程问答-------------------- 谢谢 lz 分享。
补充:.NET技术 , C#