天天看点

IronPython 与C#交互

一、介绍

<a href="http://www.cnblogs.com/nuaalfm/">作者</a>

参考:

<a target="_blank" href="http://developer.51cto.com/art/200910/156377.htm">http://developer.51cto.com/art/200910/156377.htm</a>

<a target="_blank" href="http://www.msuniversity.edu.cn/m_LearnCenterInfo/Detail.aspx?id=102">http://www.msuniversity.edu.cn/m_LearnCenterInfo/Detail.aspx?id=102</a>

 二、基础知识

1、安装

2、引入相应的dll

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

3、应用

三、IronPython 与C#交互

1、C#使用IronPython 代码

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

代码

 执行结果:

3

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

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

执行结果:

Hello:Python

2、C#调用IronPython 函数

调用IronPython 中的MyFunction函数

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

 3、IronPython 调用C#函数

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

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

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

Test代码:

<a></a>

namespace IronPythonTest

{

    public class Test

    {

        public string Hello()

        {

            return "Hello World";

        }

    }

}

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

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

<a target="_blank" href="http://www.236z.com/html/30/6/9/2009/11/10/67471.html">http://www.236z.com/html/30/6/9/2009/11/10/67471.html</a>

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

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

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