Поделиться через


Пошаговое руководство. Написание визуализатора в Visual Basic

Это важно

Начиная с Visual Studio 2022 версии 17.9, визуализаторы теперь могут быть написаны в .NET 6.0+, которые работают вне процесса с использованием новой модели VisualStudio.Extensibility. Расширения, созданные с помощью новой модели, см. в документации по созданию визуализаторов отладчика Visual Studio . Если вам нужно поддерживать более старые версии Visual Studio или отправлять пользовательские визуализаторы в рамках библиотеки DLL, используйте сведения в этой статье, которая применяется только к старой модели разработки расширений (VSSDK).

В этом пошаговом руководстве показано, как написать простой визуализатор с помощью Visual Basic. Визуализатор, который вы создадите в этом пошаговом руководстве, отображает содержимое строки с помощью поля сообщения Windows Forms. Этот простой визуализатор строк — это базовый пример, показывающий, как можно создавать визуализаторы для других типов данных, применимых к вашим проектам.

Примечание.

Диалоговые окна и команды меню, которые вы видите, могут отличаться от описанных в справке в зависимости от настроек или используемой версии. Чтобы изменить параметры, перейдите в меню "Сервис " и выберите пункт "Импорт и экспорт ". Дополнительные сведения см. в разделе Сброс параметров.

Код визуализатора должен быть помещен в библиотеку DLL, которая будет считываться отладчиком. Первым шагом является создание проекта библиотеки классов для библиотеки DLL.

Создание и подготовка проекта библиотеки классов

Создание проекта библиотеки классов

  1. Создайте проект библиотеки классов.

    Нажмите Esc, чтобы закрыть начальное окно. Нажмите Ctrl + Q, чтобы открыть окно поиска, введите библиотека классов, а затем выберите Visual Basic Class Library (.NET Framework).

    Нажмите Esc, чтобы закрыть начальное окно. Введите Ctrl + Q, чтобы открыть поле поиска, введите Visual Basic, выберите Шаблоны, а затем выберите Создать библиотеку классов (библиотека. NET Framework).

  2. Введите соответствующее имя для библиотеки классов, например MyFirstVisualizer, и нажмите кнопку "Создать " или "ОК".

    При создании библиотеки классов необходимо добавить ссылку на Microsoft.VisualStudio.DebuggerVisualizers.DLL, чтобы можно было использовать классы, определенные там. Во-первых, присвойте проекту понятное имя.

Переименовать Class1.vb и добавить Microsoft.VisualStudio.DebuggerVisualizers

  1. В обозревателе решений щелкните правой кнопкой мыши Class1.vb и в контекстном меню щелкните "Переименовать".

  2. Измените имя с Class1.vb на что-то понятное, например DebuggerSide.vb.

    Примечание.

    Visual Studio автоматически изменяет объявление класса в DebuggerSide.vb в соответствии с новым именем файла.

  3. В обозревателе решений щелкните правой кнопкой мыши "Мой первый визуализатор" и в контекстном меню нажмите кнопку "Добавить ссылку".

  4. В диалоговом окне "Добавить ссылку " на вкладке "Обзор " выберите "Обзор " и найдите Microsoft.VisualStudio.DebuggerVisualizers.DLL.

    Библиотеку DLL можно найти в подкаталоге <Visual Studio Install Directory>\Common7\IDE\PublicAssemblies каталога установки Visual Studio.

  5. Нажмите кнопку ОК.

  6. В DebuggerSide.vb добавьте следующую инструкцию к Imports инструкции:

    Imports Microsoft.VisualStudio.DebuggerVisualizers
    

Добавьте код со стороны отладчика

Теперь вы готовы создать код на стороне отладчика. Это код, который выполняется в отладчике для отображения сведений, которые требуется визуализировать. Сначала необходимо изменить объявление DebuggerSide объекта таким образом, чтобы он наследовал от базового класса DialogDebuggerVisualizer.

Наследование от DialogDebuggerVisualizer

  1. В DebuggerSide.vb перейдите к следующей строке кода:

    Public Class DebuggerSide
    
  2. Измените код таким образом, чтобы он выглядел следующим образом:

    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

  1. В обозревателе решений щелкните правой кнопкой мыши ссылки и в контекстном меню нажмите кнопку "Добавить ссылку".

  2. В диалоговом окне "Добавить ссылку " на вкладке "Обзор " выберите "Обзор" и найдите System.Windows.Forms.DLL.

    Библиотеку DLL можно найти в C:\Windows\Microsoft.NET\Framework\v4.0.30319.

  3. Нажмите кнопку ОК.

  4. В DebuggerSide.cs добавьте следующую инструкцию Imports в инструкции:

    Imports System.Windows.Forms
    

Создание пользовательского интерфейса визуализатора

Теперь вы добавите код для создания и отображения пользовательского интерфейса для визуализатора. Так как это первый визуализатор, вы будете держать пользовательский интерфейс простым и использовать окно сообщений.

Отображение выходных данных визуализатора в диалоговом окне

  1. В методе Show добавьте следующую строку кода:

    MessageBox.Show(objectProvider.GetObject().ToString())
    

    Этот пример кода не включает обработку ошибок. Необходимо включить обработку ошибок в реальный визуализатор или любое другое приложение.

  2. В меню "Построение" выберите "Построить MyFirstVisualizer". Проект должен успешно выполнить сборку. Исправьте все ошибки сборки перед продолжением.

Добавление необходимого атрибута

Это конец кода на стороне отладчика. Однако есть еще один шаг: атрибут, который сообщает стороне отлаживаемой программы, какая коллекция классов образует визуализатор.

Добавление типа для визуализации кода на стороне отладчика

В коде на стороне отладчика укажите тип для визуализации (источника объекта) для отладчика с помощью атрибута DebuggerVisualizerAttribute . Свойство Target задает тип для визуализации.

  1. Добавьте следующий код атрибута в DebuggerSide.vb после Imports инструкций, но до namespace MyFirstVisualizer:

    <Assembly: System.Diagnostics.DebuggerVisualizer(GetType(MyFirstVisualizer.DebuggerSide), GetType(VisualizerObjectSource), Target:=GetType(System.String), Description:="My First Visualizer")>
    
  2. В меню "Построение" выберите "Построить MyFirstVisualizer". Проект должен успешно выполнить сборку. Исправьте все ошибки сборки перед продолжением.

Создание тестового ремня

На этом этапе ваш первый визуализатор завершен. Если вы выполнили действия правильно, вы можете создать визуализатор и установить его в Visual Studio. Прежде чем установить визуализатор в Visual Studio, необходимо проверить его, чтобы убедиться, что он работает правильно. Теперь вы создадите тестовую оболочку для запуска визуализатора без установки в Visual Studio.

Добавление метода тестирования для отображения визуализатора

  1. Добавьте следующий метод в класс public DebuggerSide:

    Shared Public Sub TestShowVisualizer(ByVal objectToVisualize As Object)
        Dim visualizerHost As New VisualizerDevelopmentHost(objectToVisualize, GetType(DebuggerSide))
    visualizerHost.ShowVisualizer()
    End Sub
    
  2. В меню "Построение" выберите "Построить MyFirstVisualizer". Проект должен успешно выполнить сборку. Исправьте все ошибки сборки перед продолжением.

    Затем необходимо создать исполняемый проект для вызова библиотеки DLL визуализатора. Для простоты используйте проект консольного приложения.

Добавление проекта консольного приложения в решение

  1. В обозревателе решений щелкните правой кнопкой мыши решение, нажмите кнопку "Добавить" и нажмите кнопку "Создать проект".

    В поле поиска введите Visual Basic, выберите Шаблоны, а затем выберите Создать новое консольное приложение (.NET Framework). В появившемся диалоговом окне выберите Создать.

  2. Введите соответствующее имя для библиотеки классов, например MyTestConsole, и нажмите кнопку "Создать " или "ОК".

    Теперь необходимо добавить необходимые ссылки, чтобы MyTestConsole можно было вызвать MyFirstVisualizer.

Добавление необходимых ссылок в MyTestConsole

  1. В обозревателе решений щелкните правой кнопкой мыши MyTestConsole и в контекстном меню нажмите кнопку "Добавить ссылку".

  2. В диалоговом окне "Добавить ссылку" на вкладке "Обзор " щелкните Microsoft.VisualStudio.DebuggerVisualizers.

  3. Нажмите кнопку ОК.

  4. Щелкните правой кнопкой мыши MyTestConsole и снова нажмите кнопку "Добавить ссылку ".

  5. В диалоговом окне "Добавить ссылку" щелкните вкладку "Проекты " и выберите MyFirstVisualizer.

  6. Нажмите кнопку ОК.

Закончите оформление тестового стенда и протестируйте визуализатор

Теперь вы добавите код для завершения тестовой оболочки.

Добавление кода в MyTestConsole

  1. В обозревателе решений щелкните правой кнопкой мыши Program.vb и в контекстном меню щелкните "Переименовать".

  2. Измените имя из Module1.vb на что-то подходящее, например TestConsole.vb.

    Обратите внимание, что Visual Studio автоматически изменяет объявление класса в TestConsole.vb в соответствии с новым именем файла.

  3. В TestConsole. VB, добавьте следующий оператор Imports.

    Imports MyFirstVisualizer
    
  4. В методе Mainдобавьте следующий код:

    Dim myString As String = "Hello, World"
    DebuggerSide.TestShowVisualizer(myString)
    

    Теперь вы готовы протестировать первый визуализатор.

Тестирование визуализатора

  1. В обозревателе решений щелкните правой кнопкой мыши MyTestConsole и в контекстном меню выберите команду "Задать в качестве запускаемого проекта".

  2. В меню Отладка выберите команду Начать.

    Запускается консольное приложение. Отображается визуализатор и отображается строка "Hello, World".

    Поздравляю. Вы только что создали и протестировали свой первый визуализатор.

    Если вы хотите использовать визуализатор в Visual Studio, а не просто вызвать его из тестового ремня, необходимо установить его. Дополнительные сведения см. в разделе "Практическое руководство. Установка визуализатора".