2

White UI 自动化库广泛使用Castle Project的 DynamicProxy 2。据我了解,DynamicProxy 用于“包装”MS UI 自动化对象,并用于在其父窗口中检索对象。

我需要了解是否需要 DynamicProxy 以及是否可以用更快的东西替换它,即静态构建的类而不是运行时生成的代理类,这在 IMO 是不必要的减速。

DynamicProxy 在 White 库中到底在做什么,可以替换吗?任何提示或指针表示赞赏。

4

1 回答 1

1

我决定不使用 White(而是直接使用 MS UI 自动化),但我也在代码中使用 Castle Dynamic Proxy。这是定位使用位置的一个不错的开始:

C:\Users\xxxx\Desktop\petmongrels-white-54723f8>findstr /s  /c:"ProxyCreator" /c:"CreateClassProxy" /c:"IInterceptor" *.cs
Components\Core\Source\CustomCommands\CustomCommandInterceptor.cs:    public class   CustomCommandInterceptor : IInterceptor
Components\Core\Source\Interceptors\CoreInterceptor.cs:    public class CoreInterceptor : IInterceptor
Components\Core\Source\UIItems\UIItemContainer.cs:            var interceptors = (IInterceptor[]) interceptorField.GetValue(customUIItem);
Components\Repository\Source\Interceptors\ScreenObjectInterceptor.cs:    public class  ScreenObjectInterceptor : IInterceptor
Components\Repository\Source\Interceptors\UIItemInterceptor.cs:    public class UIItemInterceptor : IInterceptor
Components\Repository\Source\Interceptors\WindowInterceptor.cs:    public class WindowInterceptor : IInterceptor
Components\Repository\Source\Services\ServiceInterceptor.cs:    public class ServiceInterceptor : IInterceptor

您可以在以下位置获取源代码: https ://github.com/petmongrels/white

(我的有点过时了)

于 2012-08-08T20:24:49.197 回答