博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IronPython 与C#交互
阅读量:6715 次
发布时间:2019-06-25

本文共 1652 字,大约阅读时间需要 5 分钟。

一、介绍

Python是一种面向对象、直译式计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定。这种语言具有非常简捷而清晰的语法特点,适合完成各种高层任务,几乎可以在所有的操作系统中运行。目前,基于这种语言的相关技术正在飞速的发展,用户数量急剧扩大,相关的资源非常多。 是由在微软领导开发的一个.NET平台上的实现,包括了完整的编译器、执行引擎与运行时支持,能够与.NET已有的库无缝整合到一起。微软对于.NET framework的IronPython和动态语言非常关注,已经在各种项目中提供了对IronPython的支持。IronPython已经很好的集成到了.NET framework中,Python语言中的字符串对应于.NET的字符串对象,并且Python语言中对应的方法,在IronPython中也都提供了。其它数据类型也是一样。

参考:

了解DLR:  

jim的博客:

 二、基础知识

1、安装

因为我目前使用的是vs2008所以到下载2.6正式版,我下的是 ,直接安装就行了。默认的安装路径应该是C:\Program Files\IronPython 2.6

2、引入相应的dll

创建一个控制台应用程序,然后到C:\Program Files\IronPython 2.6中引用IronPython.dll,Microsoft.Scripting.Core.dll,Microsoft.Scripting.dll三个dll。

3、应用

C:\Program Files\IronPython 2.6\Tutorial\Tutorial.htm是IronPython的应用指导,写的很仔细。ipy.exe是IronPython 的运行控制台,如果你想学习IronPython 的语法可以使用这个工具。IronPython 的语法这里就不详细介绍了,如果想进一步学习,可以下载。

三、IronPython 与C#交互

1、C#使用IronPython 代码

我们希望在C#中直接运行IronPython 中的代码,比方说1+2的结果值

 

ContractedBlock.gif
代码

 

 

 执行结果:

3

ScriptEngine和ScriptScope是在.net中使用IronPython 脚本的两个基础类,ScriptSource是运行IronPython 的基础类,这里边sourceCode就是一个ScriptSource。

有时我们希望给IronPython 代码中传入一个变量值

 

ContractedBlock.gif
代码

 

执行结果:

Hello:Python

2、C#调用IronPython 函数

调用IronPython 中的MyFunction函数

 

ContractedBlock.gif
代码

 

这里需要注意def MyFunction(n):前不能有空格,return 2*n 必须有空格

 3、IronPython 调用C#函数

在IronPython 中调用C#中已经存在的函数

 

 

ContractedBlock.gif
代码

 

 如果需要使用某个对象中的某个函数

 

ContractedBlock.gif
代码

 

  

如果需要在IronPython 实例化使用某个对象,就稍微复杂点,这里我们创建了一个IronPythonTest程序集,我们希望在IronPython代码中使用IronPythonTest程序集中的Test类,代码如下:

 

ContractedBlock.gif
代码

 

Test代码:

namespace
 IronPythonTest
{
    
public
 
class
 Test
    {
        
public
 
string
 Hello()
        {
            
return
 
"
Hello World
"
;
        }
    }
}

  

clr.AddReference('IronPythonTest')是用来添加程序集的

from IronPythonTest import *是用来添加命名空间的

参考:

 

本文转自 你听海是不是在笑 博客园博客,原文链接:

http://www.cnblogs.com/nuaalfm/archive/2010/02/11/1667448.html

  ,如需转载请自行联系原作者

你可能感兴趣的文章
必读的Python入门书籍,你都看过吗?(内有福利)
查看>>
alibaba.fastjson 乱序问题
查看>>
django 反向关联--blog.entry_set.all()查询
查看>>
网工之路
查看>>
linux 查看发行版本信息
查看>>
数据结构之二叉树遍历
查看>>
Linux rpm 命令参数使用详解[介绍和应用]
查看>>
tr的使用详解
查看>>
CentOS 6.4下PXE+Kickstart无人值守安装操作系统
查看>>
2.5 alias命令
查看>>
arp
查看>>
小博浅谈MVC
查看>>
前端技术学习之选择器(四)
查看>>
Ubuntu与windows的远程控制/远程桌面
查看>>
2016年4月4日中项作业
查看>>
ARP欺骗
查看>>
Oracle专题12之游标
查看>>
两句话笔记--架构学习之一:并发基础课程(2)
查看>>
使用andbug的monitor命令
查看>>
CentOS/RedHat上安装man手册
查看>>