问候,
我看到的大多数关于为对象构建代理的信息都假设在某处存在一个类型,它定义了要代理的成员。我的问题是:我不能有任何这样的类型。
为了使问题更简单,我有一个将字符串映射到对象的字典。我也有 getter 和 setter 来处理这本字典。
我的目标是在 IronPython 内部提供对这些 getter 和 setter 的透明访问,就好像它们是类的真实属性一样。例如,python 脚本中的以下代码:
x.result = x.input * x.percentage;
...实际上会以宿主语言表示类似的东西:
x.SetProperty("result", x.GetProperty("input") * x.GetProperty("percentage"));
此外,这里的“x”由主机程序给出。有任何想法吗?请记住,我负担不起创建类型化存根......理想情况下,如果我能以某种方式拦截对脚本语言中特定对象的属性/方法的每次调用,我会很高兴。