快速业务通道

利用IronPython实现.NET接口

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-04-11

在IronPython2.6中新增加了clrtype功能,这样我们就可以在IronPython中实现接口以及特性类的功能。

  要想使用clrtype,需要先引入clrtype.py这个文件,在安装完IronPython之后,我并没有在安装目录下发现这个文件,但是在IronPython2.6的Samples里找到了这个文件,Copy过来就OK了。

  先定义一个C#的接口,然后将其改写为Python的,代码如下:

  using System;

  public interface IMyInterface

  {

  string SayAge(int age);

  }

  public class MyClass:IMyInterface

  {

  public string SayAge(int age)

  {

  return "hello " + age.ToString();

  }

  }

  对就的Python程序如下所示:

  # coding=gb2312

  import clr

  import clrtype

  from System import *

  class IMyInterface(object):

  __metaclass__ = clrtype.ClrInterface#声明该类为接口类型

  _clrnamespace = "TestPython" #添加命名空间

  @clrtype.accepts(int)

  @clrtype.returns(str)

  def SayAge(self, age):

  raise RuntimeError("this should not get called")

  class MyClass(IMyInterface):

  __metaclass__ = clrtype.ClrClass#声明该类为类

  _clrnamespace = "TestPython"#添加命名空间

  def SayAge(self, age):

  return "hello " + str(age)

  mc = MyClass()

  Console.Write(mc.SayAge(10))

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号