如何向IronPython中定义的方法和类型添加属性?

时间:2008-12-11 16:18:47

标签: .net attributes ironpython

由于IronPython不支持属性,我想知道是否有另一种方法来装饰具有属性的IronPython类,可能还有反射?

2 个答案:

答案 0 :(得分:2)

一个虽然丑陋但有时不切实际的解决方法是在C#中创建一个存根类并用属性装饰它并从IronPython中派生它。

答案 1 :(得分:1)

我不确定这是否是你要找的,但是clrtype允许你使用属性。

import clr
import clrtype
from System.Runtime.InteropServices import DllImportAttribute
import System

class PInvoke(object):

    __metaclass__ = clrtype.ClrClass
    DllImport = clrtype.attribute(DllImportAttribute)

    @staticmethod
    @DllImport("user32.dll")
    @clrtype.accepts(System.UInt32)
    @clrtype.returns(System.Boolean)
    def MessageBeep(beepType): raise RuntimeError("Something went wrong.")

PInvoke.MessageBeep(0)

我不确定它是否适用于课程。