Как добавить атрибуты в методы и типы, определенные в IronPython?

Поскольку IronPython не поддерживает атрибуты, мне интересно, есть ли другой способ украсить классы IronPython атрибутами, возможно, с отражением?

11.12.2008 16:18:47
2 ОТВЕТА

Один, хотя и некрасивый, а иногда и непрактичный, обходной путь - это создать класс-заглушку в C #, украсить его атрибутами и наследовать от этого в IronPython.

2
11.12.2008 23:43:50

Я не уверен, что это то, что вы ищете, но 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)

Я не уверен, работает ли это на классах все же.

1
22.08.2010 23:41:08
В IryonPython 2.6.2 и 2.7 Beta 2 я не нахожу этот модуль clrtype. Можете ли вы дать мне подсказку, где это?
MarkusSchaber 18.03.2011 11:58:39