Как я могу добавить атрибуты к методам и типам, определенным в IronPython? - PullRequest
2 голосов
/ 11 декабря 2008

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

Ответы [ 2 ]

2 голосов
/ 12 декабря 2008

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

1 голос
/ 23 августа 2010

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

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

...