Не зная точно, как это реализовано, мы можем знать, что для того, чтобы автоматизация пользовательского интерфейса выполняла то, что она делает, она должна:
- контрольно-измерительные приборы и
- межпроцессное взаимодействие
Инструментальная часть состоит из инфраструктуры, которая буквально скомпилирована во все классы в структуре пользовательского интерфейса или добавлена в среду, подключенную, если хотите. Он «заражает» хост-приложение и запускает внутри него мини-приложение.
Часть межпроцессного взаимодействия необходима для передачи неграфической информации между клиентом и хостом, такой как фактическое содержимое текстового поля. Это звучит просто, но вызывает буквальное внедрение и обмен типов и значений между двумя процессами.
Теперь, когда вы объединяете эти две вещи, исключение можно обменивать как часть межпроцессного взаимодействия, и это исключение может храниться в качестве ссылки в мини-приложении, которое является структурой автоматизации, и у вас есть умозрительное объяснение того, как оно может произойти.
В вашем случае, если вы достаточно любопытны или мотивированы (возможно, из-за ошибки), вы можете продолжить изучение этой проблемы с помощью различных инструментов. У вас есть отладчик, ILSpy, эксперименты с «черным ящиком», инструменты кучи и т. Д. Вам решать, как далеко вы должны зайти.