2009-01-19 9 views
2

Salutations,Intercepter méthode d'accès au Programme d'accueil de IronPython

La plupart des informations que je vois autour concernant la construction de proxies pour les objets suppose qu'il existe quelque part un type qui définit les membres à serveur mandataire. Mon problème est: je ne peux pas avoir un tel type.

Pour rendre le problème plus simple, ce que j'ai est un dictionnaire qui associe des chaînes à des objets. J'ai aussi des getters et setters pour faire face à ce dictionnaire.

Mon but est donc de fournir un accès transparent à l'intérieur IronPython à cette accesseurs comme si elles étaient réelles propriétés d'une classe. Par exemple, le code suivant dans un script python:

x.result = x.input * x.percentage; 

... représenterait en fait quelque chose comme dans la langue d'accueil:

x.SetProperty("result", x.GetProperty("input") * x.GetProperty("percentage")); 

En outre, « x » ici est donnée par le programme d'accueil . Des idées? S'il vous plaît rappelez-vous que je ne peux pas me permettre la création d'un talon typé ... Idéalement, je serais heureux si d'une manière ou d'une autre je pouvais intercepter chaque appel à un attribut/méthode d'un objet spécifique dans le langage hôte.

Répondre