• Python 调用.net framework写的类库的方法


    Python 调用.net framework写的类库的方法

    1. 安装python2.5和对应的pywin32

    安装方法:略。

    2. 下载ironPython源代码 C#的。

    我用的是IronPython1.1的版本,从codeplex网站下载IronPython_1_1.rar。解压缩。

    3. vistual studio 建立一个.NET类库工程,工程名字为:IronPython。把ironPython目录下的src子目录中的ironPython目录的ironMath目录里的c#源文件(不要assemblyInfo.cs)都考到你的工程目录里。在工程里增加刚考来的源文件。

    4. 修改AssemblyInfo.cs

    [assembly: ComVisible(false)]

    false 改为true

    5. 在项目=>属性=>生成里把 COM Interop注册 打上勾

    6. 在项目=>属性=>签名 里把为程序集签名 打上勾,选择强名称密钥文件时 选择新建,输个文件名,比如 IronPython.snk, 也可以手动生成密钥文件,然后在这里选择.

    手动生成的方法:.Net Framework的命令行界面里 用 sn -k IronPython.snk 这个命令.

    7. 编译项目生成 IronPython.dll

    8. .Net Framework的命令行界面里用 regasm IronPython.dll 注册COM组件

    9. .Net Framework的命令行界面里用 gacutil -i IronPython.dll 把库加到全局缓存里

    10. 建立.net framework 的类库。代码如下:

    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Text;

    size: 10pt; font-family: 新宋体; color: blue;" lang="EN-US">namespace test

    {

        public class testclass

        {

            public string func()

            {

                return "hello world";

            }

        }

    }

    11. 建 立test.py调用刚才写的test.dll类 库。代码:

    import win32com

    import win32com.client

    eng=win32com.client.Dispatch("IronPython.Hosting.PythonEngine")

    eng.execute("import clr")

    eng.execute("import sys")

    eng.execute("""sys.path.append('c:\\\\test')""")

    eng.execute("print sys.path")

    eng.execute("""clr.AddReferenceToFile("abc.dll")""")

    eng.execute("from test import *")

    eng.execute("obj = testclass()")

    eng.execute("print obj.func()")

    注意:eng.execute("""sys.path.append('c:\\\\test')""")

    这句是将test.dll所在的路径添加到ironPythonsys.path中去。如果不加,AddReferenceToFile将会 出错。

  • 相关阅读:
    jmeter之正则表达式
    python_appium搭建APP自动化测试环境
    网络编程
    四种单例模式
    Pycharm快捷键
    面向对象
    阶段性总结
    模块之numpy,pandas,matplotlib
    模块之json,pickle,os,sys,logging
    模块之Time,datatime,hashlib,hmac
  • 原文地址:https://www.cnblogs.com/top5/p/1726777.html
Copyright © 2020-2023  润新知