Пошаговое руководство. Написание визуализатора на C#
В данном пошаговом руководстве показано, как написать простой визуализатор, используя C#.Визуализатор, который вы создадите в данном пошаговом руководстве, показывает содержание строки, используя окно сообщений Windows Forms.Этот простой визуализатор строки сам по себе не очень полезен, но он демонстрирует основные действия для создания более полезных визуализаторов других типов данных.
Примечание |
---|
Отображаемые диалоговые окна и команды меню могут отличаться от описанных в справке в зависимости от текущих параметров и выпуска.Для изменения параметров выберите пункт Импорт и экспорт настроек в меню Сервис.Дополнительные сведения см. в разделе Параметры Visual Studio. |
Код визуализатора должен быть помещен в библиотеку DLL, которая будет читаться отладчиком.Поэтому первым шагом является создание проекта библиотеки классов для библиотеки DLL.
Создание проекта библиотеки классов
В меню Файл выберите команду Создать , затем Создать проект.
В диалоговом окне Создание проекта в меню Тип проекта выберите пункт Visual C#.
В списке Шаблоны выберите Библиотека классов.
В поле Имя введите соответствующее имя для библиотеки класса, например MyFirstVisualizer.
Нажмите кнопку ОК.
После создания библиотеки классов необходимо добавить ссылку на Microsoft.VisualStudio.DebuggerVisualizers.DLL, таким образом вы сможете использовать определенные там классы.Однако, перед добавлением ссылки, необходимо присвоить некоторым классам осмысленные имена.
Чтобы переименовать Class1.cs и добавить Microsoft.VisualStudio.DebuggerVisualizers
Щелкните правой кнопкой мыши Class1.cs в обозревателе решений и выберите команду Переименовать в контекстном меню.
Измените имя с Class1.cs на что-нибудь осмысленное, например, DebuggerSide.cs.
Примечание Visual Studio автоматически изменяет объявление класса в DebuggerSide.cs, чтобы оно соответствовало новому имени файла.
В обозревателе решений щелкните правой кнопкой мыши пункт Ссылки и в контекстном меню выберите команду Добавить ссылку.
В диалоговом окне Добавить ссылку на вкладке .NET выберите Microsoft.VisualStudio.DebuggerVisualizers.DLL.
Нажмите кнопку ОК.
В DebuggerSide.cs добавьте следующий оператор к инструкциям using:
using Microsoft.VisualStudio.DebuggerVisualizers;
Теперь можно приступить к написанию отладочной части кода.Этот код запускается отладчиком для отображения информации, которую требуется визуализировать.Прежде всего необходимо изменить объявление объекта DebuggerSide таким образом, чтобы он наследовал базовый класс DialogDebuggerVisualizer.
Наследование от DialogDebuggerVisualizer
В DebuggerSide.cs перейдите к следующей строке кода:
public class DebuggerSide
Измените код на:
public class DebuggerSide : DialogDebuggerVisualizer
DialogDebuggerVisualizer имеет один абстрактный метод — Show — который необходимо переопределить.
Переопределение метода DialogDebuggerVisualizer.Show
В public class DebuggerSide добавьте следующий метод:
override protected void Show(IDialogVisualizerService windowService, IVisualizerObjectProvider objectProvider) { }
Метод Show содержит код, который фактически создает диалоговое окно визуализатора или другой интерфейс пользователя и отображает сведения, которые были переданы визуализатору из отладчика.Необходимо вручную добавить код, который создает диалоговое окно и отображает информацию.В данном пошаговом руководстве используется окно сообщения Windows Forms.Прежде всего необходимо добавить ссылку и инструкцию using для System.Windows.Forms.
Добавление пространства имен System.Windows.Forms
В обозревателе решений щелкните правой кнопкой мыши пункт Ссылки и в контекстном меню выберите команду Добавить ссылку.
В диалоговом окне Добавление ссылки на вкладке .NET выберите System.Windows.Forms.DLL.
Нажмите кнопку ОК.
В DebuggerSide.cs добавьте следующий оператор к инструкциям using:
using System.Windows.Forms;
Сейчас необходимо добавить некоторый код для создания и отображения пользовательского интерфейса визуализатора.Поскольку это первый визуализатор, то ограничимся написанием простого пользовательского интерфейса и используем окно сообщения.
Чтобы отобразить выходные данные визуализатора в диалоговом окне
Добавьте следующую строку кода в метод Show:
MessageBox.Show(objectProvider.GetObject().ToString());
В этом примере отсутствует код для обработки ошибок.Следует включать обработку ошибок в настоящем визуализаторе или в любом другом типе приложений.
В меню Построение выберите команду Построить MyFirstVisualizer.Построение проекта должно пройти без ошибок.Если при построении все же возникнут ошибки, исправьте их, прежде чем продолжить.
Отладочная часть кода написана.Тем не менее, необходимо выполнить еще одно действие: добавить атрибут, который сообщает отлаживаемому коду, какой набор классов формирует визуализатор.
Чтобы добавить код отлаживаемой стороны
Добавьте следующий код атрибута в DebuggerSide.cs — после операторов using, но перед namespace MyFirstVisualizer:
[assembly:System.Diagnostics.DebuggerVisualizer( typeof(MyFirstVisualizer.DebuggerSide), typeof(VisualizerObjectSource), Target = typeof(System.String), Description = "My First Visualizer")]
В меню Построение выберите команду Построить MyFirstVisualizer.Построение проекта должно пройти без ошибок.Если при построении все же возникнут ошибки, исправьте их, прежде чем продолжить.
На этом написание вашего первого визуализатора окончено.Если вы правильно следовали описанной выше процедуре, можно построить визуализатор и установить его в Visual Studio.Однако перед установкой визуализатора в Visual Studio следует проверить, что он работает правильно.Для этого следует создать тестовое окружение, в котором визуализатор будет запускаться без установки в Visual Studio.
Чтобы добавить тестовый метод для запуска визуализатора
Добавьте следующий метод в класс public DebuggerSide:
public static void TestShowVisualizer(object objectToVisualize) { VisualizerDevelopmentHost visualizerHost = new VisualizerDevelopmentHost(objectToVisualize, typeof(DebuggerSide)); visualizerHost.ShowVisualizer(); }
В меню Построение выберите команду Построить MyFirstVisualizer.Построение проекта должно пройти без ошибок.Если при построении все же возникнут ошибки, исправьте их, прежде чем продолжить.
Далее необходимо создать проект исполняемого файла, из которого будет вызваться библиотека DLL визуализатора.Для простоты используем проект консольного приложения.
Добавление проекта консольного приложения в решение
В меню Файл выберите команду Добавить , а затем Создать проект.
В диалоговом окне Добавление нового проекта в поле Шаблоны выберите пункт Консольное приложение.
В поле Имя введите понятное имя для консольного приложения, например MyTestConsole.
Нажмите кнопку ОК.
Теперь необходимо добавить необходимые ссылки, чтобы программа MyTestConsole могла вызывать MyFirstVisualizer.
Добавление необходимых ссылок в MyTestConsole
В обозревателе решений щелкните правой кнопкой мыши MyTestConsole и в контекстном меню выберите пункт Добавить ссылку.
В диалоговом окне Добавление ссылки на вкладке .NET выберите Microsoft.VisualStudio.DebuggerVisualizers.DLL.
Нажмите кнопку ОК.
Щелкните правой кнопкой мыши MyTestConsole и выберите Добавить ссылку еще раз.
В диалоговом окне Добавление ссылки перейдите на вкладку Проекты и выберите MyFirstVisualizer.
Нажмите кнопку ОК.
Теперь нужно добавить код, которым завершится создание тестового окружения.
Добавление кода в MyTestConsole
Щелкните правой кнопкой мыши Program.cs в обозревателе решений и выберите команду Переименовать в контекстном меню.
Измените имя c Program.cs на что-нибудь более понятное, например на TestConsole.cs.
Бумага для заметок Visual Studio автоматически изменяет объявление класса в TestConsole.cs так, чтобы оно соответствовало новому имени файла.
В TestConsole.cs добавьте следующий код к инструкциям using:
using MyFirstVisualizer;
В метод Main добавьте следующий код:
String myString = "Hello, World"; DebuggerSide.TestShowVisualizer(myString);
Теперь все готово для проверки вашего первого визуализатора.
Тестирование визуализатора
В окне Обозреватель решений щелкните правой кнопкой мыши MyTestConsole и в контекстном меню выберите команду Назначить автозагружаемым проектом.
В меню Отладка выберите команду Пуск.
Запускается консольное приложение, визуализатор появляется и отображает строку "Hello, World".
Поздравляем!Вы только что создали и протестировали ваш первый визуализатор.
Если вам удобнее вызывать визуализатор из Visual Studio, а не из специально подготовленной тестовой программы, визуализатор необходимо установить.Дополнительные сведения см. в разделе Практическое руководство. Установка визуализатора.
Использование шаблона элемента визуализатора
На данном пошаговом руководстве было рассмотрено, как создать визуализатор вручную.Это было сделано в качестве упражнения для обучения.Теперь, когда вы знаете, как работает простой визуализатор, можно создать его проще — с помощью шаблона элемента визуализатора.
Во–первых, необходимо создать новый проект библиотеки классов.
Чтобы создать новую библиотеку классов
В меню Файл выберите команду Добавить , а затем Создать проект.
В диалоговом окне Добавление нового проекта в меню Тип проекта выберите Visual C#.
В списке Шаблоны выберите Библиотека классов.
В поле Имя введите соответствующее имя для библиотеки класса, например MySecondVisualizer.
Нажмите кнопку ОК.
Теперь можно добавить элемент визуализатора.
Чтобы добавить элемент визуализатора
В обозревателе решений щелкните правой кнопкой мыши MySecondVisualizer.
В контекстном меню выберите команду Добавить и нажмите кнопку Создать элемент.
В диалоговом окне Добавление нового элемента в меню Шаблоны , подменю Установленные шаблоны Visual Studio выберите Визуализатор отладчика.
В поле Имя введите соответствующее имя, например SecondVisualizer.cs.
Нажмите кнопку Добавить.
Вот и все, что нужно!Просмотрите файл SecondVisualizer.cs для изучения кода, добавленного шаблоном.Можете поэкспериментировать с кодом.Теперь, когда вы изучили основы, вы сможете в будущем создавать свои собственные более сложные и полезные визуализаторы.
См. также
Задачи
Практическое руководство. Установка визуализатора