对于可访问性,Silverlight 实现了 AutomationPeers,对自动化 UI 测试、屏幕阅读器等很有用。
在分析我的 SL 应用程序时,我注意到很多与 AutomationPeers 相关的昂贵调用,例如UIElement.OnCreateAutomationPeer。框架控件已经实现了这一点,这会导致非托管代码调用,这对于 SL 的托管代码来说显然是昂贵的。
我的问题是,这种自动化是否仅在您运行自动化客户端时启用,例如“平板电脑输入服务”?我不希望进行这些调用,因为我们不会使用任何自动化/可访问性服务,而且我们的应用程序是相当资源密集型的,因此需要限制不必要的调用,尤其是非托管调用。
我只是不确定是否由于某些我不知道在我的系统上运行的自动化客户端正在执行此代码,或者这是否也会在客户端的系统上执行?我不想有歪斜的分析结果。