White UI 自动化库广泛使用Castle Project的 DynamicProxy 2。据我了解,DynamicProxy 用于“包装”MS UI 自动化对象,并用于在其父窗口中检索对象。
我需要了解是否需要 DynamicProxy 以及是否可以用更快的东西替换它,即静态构建的类而不是运行时生成的代理类,这在 IMO 是不必要的减速。
DynamicProxy 在 White 库中到底在做什么,可以替换吗?任何提示或指针表示赞赏。
White UI 自动化库广泛使用Castle Project的 DynamicProxy 2。据我了解,DynamicProxy 用于“包装”MS UI 自动化对象,并用于在其父窗口中检索对象。
我需要了解是否需要 DynamicProxy 以及是否可以用更快的东西替换它,即静态构建的类而不是运行时生成的代理类,这在 IMO 是不必要的减速。
DynamicProxy 在 White 库中到底在做什么,可以替换吗?任何提示或指针表示赞赏。
我决定不使用 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
(我的有点过时了)