J'essaie de créer un objet proxy dans IronPython, qui devrait présenter dynamiquement la structure sous-jacente. Le proxy lui-même ne devrait pas avoir de fonctions et de propriétés, j'essaie d'attraper tous les appels dans l'exécution. Attraper les appels de fonction est facile, je dois juste définir getattr() fonction pour mon objet, et vérifie que la fonction appropriée existe dans le calque sous-jacent, et retourne un objet semblable à la fonction.Objets proxy dans IronPython
J'ai des problèmes avec des propriétés - Je ne sais pas comment distinguer le contexte d'appel, est ma propriété appelée comme lvalue ou rvalue:
o = myproxy.myproperty # Je dois appeler underlying.myproperty_get()
ou
myproxy.myproperty = o # Je dois appeler underlying.myproperty_set (o)
J'ai regardé la liste des fonctions spéciales en Python, mais je n'ai rien trouvé de convenable.
J'ai également essayé de faire la propriété dans l'objet à la volée, avec la combinaison de la fonction d'exec() et de propriété intégrée, mais j'ai trouvé que IronPython 1.1.2 manque du module 'nouveau' entier (qui est présent dans IronPython 2.x beta, mais je vais plutôt utiliser IP 1.x, à cause du framework .NET 2.0).
Des idées?
Les gars, je vous remercie beaucoup! – apetrovic