Реализация визуализаторов типов и пользовательских зрителей

Важно!

В Visual Studio 2015 такая реализация вычислителя выражений была сделана нерекомендуемой. Сведения о реализации вычислителей выражений в среде CLR см. на страницах CLR expression evaluators (Вычислители выражений CLR) и Managed expression evaluator sample (Пример управляемого вычислителя выражений).

Визуализаторы типов и пользовательские зрители позволяют пользователю просматривать данные определенного типа таким образом, что более значимым, чем простой шестнадцатеричный дамп чисел. Средство оценки выражений (EE) может связывать пользовательских зрителей с определенными типами данных или переменными. Эти пользовательские средства просмотра реализуются EE. EE также может поддерживать визуализаторы внешнего типа, которые могут поступать от другого стороннего поставщика или даже конечного пользователя.

Обсуждение

Визуализаторы типов

Visual Studio запрашивает список визуализаторов типов и пользовательских зрителей для отображения каждого объекта в окне просмотра. Средство оценки выражений (EE) предоставляет такой список для каждого типа, для которого он хочет поддерживать визуализаторы типов и пользовательских зрителей. Вызовы GetCustomViewerCount и GetCustomViewerList запускают весь процесс доступа к визуализаторам типов и пользовательским зрителям (см. сведения о визуализации и просмотре данных о последовательности вызовов).

Пользовательские средства просмотра

Пользовательские средства просмотра реализованы в EE для определенного типа данных и представлены интерфейсом IDebugCustomViewer . Пользовательское средство просмотра не так гибко, как визуализатор типов, так как оно доступно только в том случае, если EE, реализующий этот конкретный пользовательский зритель, выполняется. Реализация пользовательского средства просмотра проще, чем реализация поддержки визуализаторов типов. Однако вспомогательные визуализаторы типов обеспечивают максимальную гибкость для пользователя для визуализации своих данных. Оставшаяся часть этого обсуждения касается только визуализаторов типов.

Интерфейсы

EE реализует следующие интерфейсы для поддержки визуализаторов типов, используемых Visual Studio: