为什么所有的屏幕对象方法都需要声明为虚拟的?
Why do all screen object methods need to be declared virtual?
我刚开始使用 white,在成功进行一些测试后,我正在查看一些源代码以更好地了解它是如何工作的。
首先让我感到困惑(并且一直让我感到困惑)的事情之一是需要让屏幕对象中的所有 public 函数都是虚拟的。通读了the documentation, and looked at the source,没看到有说为什么这个要求是强制性的。。。只能认为是代理强制执行了这个要求,但是好像只对字段进行操作,并没有似乎对任何方法都有效...
我的猜测是因为白方使用 DynamicProxy to create proxy objects。 DynamicProxy 的网站指定:
You can use DynamicProxy to generate lightweight proxies on the fly for one or more interfaces or even concrete classes (but only virtual methods will be intercepted).
通过将属性和方法标记为虚拟,运行时将调用代理上的方法,而不是调用代理所基于的 class 上的方法。
我刚开始使用 white,在成功进行一些测试后,我正在查看一些源代码以更好地了解它是如何工作的。
首先让我感到困惑(并且一直让我感到困惑)的事情之一是需要让屏幕对象中的所有 public 函数都是虚拟的。通读了the documentation, and looked at the source,没看到有说为什么这个要求是强制性的。。。只能认为是代理强制执行了这个要求,但是好像只对字段进行操作,并没有似乎对任何方法都有效...
我的猜测是因为白方使用 DynamicProxy to create proxy objects。 DynamicProxy 的网站指定:
You can use DynamicProxy to generate lightweight proxies on the fly for one or more interfaces or even concrete classes (but only virtual methods will be intercepted).
通过将属性和方法标记为虚拟,运行时将调用代理上的方法,而不是调用代理所基于的 class 上的方法。