设为首页 加入收藏

TOP

IronPython和C#交互
2015-07-20 12:52:53 来源: 作者: 【 】 浏览:50
Tags:IronPython 交互

IronPython是一个.NET平台上的Python实现,包括了完整的编译器、执行引擎与运行时支持,能够与.NET已有的库无缝整合到一起。


IronPython已经很好的集成到了.NET framework中,所以Ironpython和C#的交互也就变得很简单了。下面就通过一些简单的例子来看看IronPython和C#之间的交互。


工欲善其事,必先利其器,所以在开始IronPython的开发之前,我们先找到一个方便的开发环境。


PTVS(Python tools for Visual Studio)是一个免费开源的VisualStudio的插件,支持 VisualStudio 2010/2012/2013,安装好这个插件之后,我们就可以直接通过VS进行IronPython的开发了。


下面一个截图显示了我们可以新建的项目模板:



首先我们看下如何在IronPython中使用C#的简单例子。


在.NET中,有很多标准库,在IronPython中,就可以使用import来引入这些标准库来直接使用。看一个简单的例子,我们使用.NET中的String和DateTime


代码输出如下,可以看到在IronPython代码中,可以通过String的Format方法进行字符串格式化的输出。



在.NET开发中,会经常通过References来引用一些.NET库,当然在IronPython项目中,也可以引用并使用.NET库。


例如,现在我们有一个Calc的计算类型,里面有一个Add和Sub方法。通过这个类型,生成了一个CalcLib.dll。


下面看看如何在IronPython项目中使用这个dll,在IronPython中,可以使用"clr"模块来添加.NET引用:


代码输出如下,当引用了CalcLib.dll之后,我们就可以使用Calc类型创建实例,并且使用实例的C#方法。



在IronPython项目中,也可以引入WPF相关的.NET库,这样就可以方便的创建图形界面应用。


安装过PTVS之后,里面有个"IronPython WPF Application"的模板,通过这个模板,可以直接创建WPF应用。


在新建的项目中,VS会帮我们自动引用WPF相关的库,同时会有一个.py和.xaml文件。



下面看一个简单的例子,通过IrpnPython实现的一个简单计算器,界面的代码如下:


对应的IronPython代码如下:


代码运行效果如下:



前面介绍了在IronPython中如何使用.NET库,下面看看通过C#代码执行IronPython脚本。在.NET framework中,包含了IronPython的编译器和执行引擎,所以我们可以通过C#代码创建一个引擎实例,然后执行脚本。


先看看我们需要使用的类型:


现在我们有一个简单的打印当前时间的IronPython脚本:


然后就可以使用下面的方式执行脚本:


在ScriptScope类型中,有一个SetVariable方法,我们可以通过这个方法给脚本传递参数。


public void SetVariable(string name, object value)


这样,我们就可以把一个C#实例传递给IronPython,然后脚本就可以使用C#实例的成员。看一个例子:


在这个例子中,C#代码中创建了一个Student类型的实例,并把这个实例传递给了PrintStuInfo.py脚本。


通过输出可以看到,IronPython脚本可以方便的访问C#实例的成员。



本篇文章通过一些例子演示了IronPython与C#的交互,感觉有几个例子还是很有意思的。


有时候使用C#调用IronPython可以使程序变得更加灵活,通???一个C#类型提供一组封装好的操作,每次构建类型实例然后传递给脚本;这样,用户就可以编写IronPython脚本,然后使用C#类型中提供的操作方法,从而实现不同的自定义操作。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C++基础知识学习笔记 下一篇C#异步委托

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: