Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это важно
Начиная с Visual Studio 2022 версии 17.9, визуализаторы теперь могут быть написаны в .NET 6.0+, которые работают вне процесса с использованием новой модели VisualStudio.Extensibility. Расширения, созданные с помощью новой модели, см. в документации по созданию визуализаторов отладчика Visual Studio . Если вам нужно поддерживать более старые версии Visual Studio или отправлять пользовательские визуализаторы в рамках библиотеки DLL, используйте сведения в этой статье, которая применяется только к старой модели разработки расширений (VSSDK).
В этом пошаговом руководстве показано, как написать простой визуализатор с помощью Visual Basic. Визуализатор, который вы создадите в этом пошаговом руководстве, отображает содержимое строки с помощью поля сообщения Windows Forms. Этот простой визуализатор строк — это базовый пример, показывающий, как можно создавать визуализаторы для других типов данных, применимых к вашим проектам.
Примечание.
Диалоговые окна и команды меню, которые вы видите, могут отличаться от описанных в справке в зависимости от настроек или используемой версии. Чтобы изменить параметры, перейдите в меню "Сервис " и выберите пункт "Импорт и экспорт ". Дополнительные сведения см. в разделе Сброс параметров.
Код визуализатора должен быть помещен в библиотеку DLL, которая будет считываться отладчиком. Первым шагом является создание проекта библиотеки классов для библиотеки DLL.
Создание и подготовка проекта библиотеки классов
Создание проекта библиотеки классов
Создайте проект библиотеки классов.
Нажмите Esc, чтобы закрыть начальное окно. Нажмите Ctrl + Q, чтобы открыть окно поиска, введите библиотека классов, а затем выберите Visual Basic Class Library (.NET Framework).
Нажмите Esc, чтобы закрыть начальное окно. Введите Ctrl + Q, чтобы открыть поле поиска, введите Visual Basic, выберите Шаблоны, а затем выберите Создать библиотеку классов (библиотека. NET Framework).
Введите соответствующее имя для библиотеки классов, например
MyFirstVisualizer
, и нажмите кнопку "Создать " или "ОК".При создании библиотеки классов необходимо добавить ссылку на Microsoft.VisualStudio.DebuggerVisualizers.DLL, чтобы можно было использовать классы, определенные там. Во-первых, присвойте проекту понятное имя.
Переименовать Class1.vb и добавить Microsoft.VisualStudio.DebuggerVisualizers
В обозревателе решений щелкните правой кнопкой мыши Class1.vb и в контекстном меню щелкните "Переименовать".
Измените имя с Class1.vb на что-то понятное, например DebuggerSide.vb.
Примечание.
Visual Studio автоматически изменяет объявление класса в DebuggerSide.vb в соответствии с новым именем файла.
В обозревателе решений щелкните правой кнопкой мыши "Мой первый визуализатор" и в контекстном меню нажмите кнопку "Добавить ссылку".
В диалоговом окне "Добавить ссылку " на вкладке "Обзор " выберите "Обзор " и найдите Microsoft.VisualStudio.DebuggerVisualizers.DLL.
Библиотеку DLL можно найти в подкаталоге <Visual Studio Install Directory>\Common7\IDE\PublicAssemblies каталога установки Visual Studio.
Нажмите кнопку ОК.
В DebuggerSide.vb добавьте следующую инструкцию к
Imports
инструкции:Imports Microsoft.VisualStudio.DebuggerVisualizers
Добавьте код со стороны отладчика
Теперь вы готовы создать код на стороне отладчика. Это код, который выполняется в отладчике для отображения сведений, которые требуется визуализировать. Сначала необходимо изменить объявление DebuggerSide
объекта таким образом, чтобы он наследовал от базового класса DialogDebuggerVisualizer
.
Наследование от DialogDebuggerVisualizer
В DebuggerSide.vb перейдите к следующей строке кода:
Public Class DebuggerSide
Измените код таким образом, чтобы он выглядел следующим образом:
Public Class DebuggerSide Inherits DialogDebuggerVisualizer
Примечание.
DialogDebuggerVisualizer ожидает
FormatterPolicy
аргумент в его конструкторе. Однако из-за проблем безопасности, описанных в разделе "Специальный отладчик" для .NET 5.0+, начиная с Visual Studio 2022 версии 17.11 визуализаторы не смогут указыватьLegacy
политику форматирования.DialogDebuggerVisualizer
имеет один абстрактный метод,Show
который необходимо переопределить.
Переопределение метода DialogDebuggerVisualizer.Show
Добавьте в
public class DebuggerSide
следующий метод:Protected Overrides Sub Show(ByVal windowService As Microsoft.VisualStudio.DebuggerVisualizers.IDialogVisualizerService, ByVal objectProvider As Microsoft.VisualStudio.DebuggerVisualizers.IVisualizerObjectProvider) End Sub
Метод
Show
содержит код, который фактически создает диалоговое окно визуализатора или другой пользовательский интерфейс, и отображает сведения, переданные визуализатору из отладчика. Необходимо добавить код, создающий диалоговое окно, и отобразить сведения. В этом пошаговом руководстве вы будете делать это с помощью поля сообщения Windows Forms. Сначала необходимо добавить ссылку иImports
заявление для System.Windows.Forms.
Добавление System.Windows.Forms
В обозревателе решений щелкните правой кнопкой мыши ссылки и в контекстном меню нажмите кнопку "Добавить ссылку".
В диалоговом окне "Добавить ссылку " на вкладке "Обзор " выберите "Обзор" и найдите System.Windows.Forms.DLL.
Библиотеку DLL можно найти в C:\Windows\Microsoft.NET\Framework\v4.0.30319.
Нажмите кнопку ОК.
В DebuggerSide.cs добавьте следующую инструкцию
Imports
в инструкции:Imports System.Windows.Forms
Создание пользовательского интерфейса визуализатора
Теперь вы добавите код для создания и отображения пользовательского интерфейса для визуализатора. Так как это первый визуализатор, вы будете держать пользовательский интерфейс простым и использовать окно сообщений.
Отображение выходных данных визуализатора в диалоговом окне
В методе
Show
добавьте следующую строку кода:MessageBox.Show(objectProvider.GetObject().ToString())
Этот пример кода не включает обработку ошибок. Необходимо включить обработку ошибок в реальный визуализатор или любое другое приложение.
В меню "Построение" выберите "Построить MyFirstVisualizer". Проект должен успешно выполнить сборку. Исправьте все ошибки сборки перед продолжением.
Добавление необходимого атрибута
Это конец кода на стороне отладчика. Однако есть еще один шаг: атрибут, который сообщает стороне отлаживаемой программы, какая коллекция классов образует визуализатор.
Добавление типа для визуализации кода на стороне отладчика
В коде на стороне отладчика укажите тип для визуализации (источника объекта) для отладчика с помощью атрибута DebuggerVisualizerAttribute . Свойство Target
задает тип для визуализации.
Добавьте следующий код атрибута в DebuggerSide.vb после
Imports
инструкций, но доnamespace MyFirstVisualizer
:<Assembly: System.Diagnostics.DebuggerVisualizer(GetType(MyFirstVisualizer.DebuggerSide), GetType(VisualizerObjectSource), Target:=GetType(System.String), Description:="My First Visualizer")>
В меню "Построение" выберите "Построить MyFirstVisualizer". Проект должен успешно выполнить сборку. Исправьте все ошибки сборки перед продолжением.
Создание тестового ремня
На этом этапе ваш первый визуализатор завершен. Если вы выполнили действия правильно, вы можете создать визуализатор и установить его в Visual Studio. Прежде чем установить визуализатор в Visual Studio, необходимо проверить его, чтобы убедиться, что он работает правильно. Теперь вы создадите тестовую оболочку для запуска визуализатора без установки в Visual Studio.
Добавление метода тестирования для отображения визуализатора
Добавьте следующий метод в класс
public DebuggerSide
:Shared Public Sub TestShowVisualizer(ByVal objectToVisualize As Object) Dim visualizerHost As New VisualizerDevelopmentHost(objectToVisualize, GetType(DebuggerSide)) visualizerHost.ShowVisualizer() End Sub
В меню "Построение" выберите "Построить MyFirstVisualizer". Проект должен успешно выполнить сборку. Исправьте все ошибки сборки перед продолжением.
Затем необходимо создать исполняемый проект для вызова библиотеки DLL визуализатора. Для простоты используйте проект консольного приложения.
Добавление проекта консольного приложения в решение
В обозревателе решений щелкните правой кнопкой мыши решение, нажмите кнопку "Добавить" и нажмите кнопку "Создать проект".
В поле поиска введите Visual Basic, выберите Шаблоны, а затем выберите Создать новое консольное приложение (.NET Framework). В появившемся диалоговом окне выберите Создать.
Введите соответствующее имя для библиотеки классов, например
MyTestConsole
, и нажмите кнопку "Создать " или "ОК".Теперь необходимо добавить необходимые ссылки, чтобы MyTestConsole можно было вызвать MyFirstVisualizer.
Добавление необходимых ссылок в MyTestConsole
В обозревателе решений щелкните правой кнопкой мыши MyTestConsole и в контекстном меню нажмите кнопку "Добавить ссылку".
В диалоговом окне "Добавить ссылку" на вкладке "Обзор " щелкните Microsoft.VisualStudio.DebuggerVisualizers.
Нажмите кнопку ОК.
Щелкните правой кнопкой мыши MyTestConsole и снова нажмите кнопку "Добавить ссылку ".
В диалоговом окне "Добавить ссылку" щелкните вкладку "Проекты " и выберите MyFirstVisualizer.
Нажмите кнопку ОК.
Закончите оформление тестового стенда и протестируйте визуализатор
Теперь вы добавите код для завершения тестовой оболочки.
Добавление кода в MyTestConsole
В обозревателе решений щелкните правой кнопкой мыши Program.vb и в контекстном меню щелкните "Переименовать".
Измените имя из Module1.vb на что-то подходящее, например TestConsole.vb.
Обратите внимание, что Visual Studio автоматически изменяет объявление класса в TestConsole.vb в соответствии с новым именем файла.
В TestConsole. VB, добавьте следующий оператор
Imports
.Imports MyFirstVisualizer
В методе
Main
добавьте следующий код:Dim myString As String = "Hello, World" DebuggerSide.TestShowVisualizer(myString)
Теперь вы готовы протестировать первый визуализатор.
Тестирование визуализатора
В обозревателе решений щелкните правой кнопкой мыши MyTestConsole и в контекстном меню выберите команду "Задать в качестве запускаемого проекта".
В меню Отладка выберите команду Начать.
Запускается консольное приложение. Отображается визуализатор и отображается строка "Hello, World".
Поздравляю. Вы только что создали и протестировали свой первый визуализатор.
Если вы хотите использовать визуализатор в Visual Studio, а не просто вызвать его из тестового ремня, необходимо установить его. Дополнительные сведения см. в разделе "Практическое руководство. Установка визуализатора".