栏目导航
热点推荐
- 如何配置Web.config文件 for ASP
- .NET小常识——答你所问
- ASP.NET程序中常用的三十三种代
- 一个“简单”的ASP.NET的服务器
- ASP.NET中使用AJAX中的方式
- 从N层到.NET详细剖析原理(2)
- 十项必须学习的.NET技术
- Visual Basic中文本框处理技巧集
- 几十个ASP.NET性能优化的常用方
- ASP.NET技术FAQ
- Asp.Net细节性问题精萃
- 十天学会ASP.net之第一天
阅览排行
如何利用IronPython 实现.NET接口
www.jz123.cn 2011-11-14 来源: 站长家园 责任编辑(袁袁) 我要投递新闻
在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))
0
上一篇:.Net实现找出两幅图片的不同之处 下一篇:提升.net性能的一些方法