Использование & lt; CustomVisualizer & gt; тег с натвис

Я пытаюсь использовать тег, который определен в natvis.xsd (файл схемы natvis) для написания кода C # или C ++ для визуализации типа. Я не могу найти никакой документации по этому вопросу, поэтому я не уверен, как это работает. В частности, мне нужно указать GUID для CustomVisualizer. На что указывает этот GUID? Как мне экспортировать класс, зарегистрированный с этим GUID? Какой интерфейс мне нужно реализовать? Короче говоря, как мне подключить GUID, указанный в файле .natvis, к коду, который форматирует объект?

документация для natvis не упоминается о существовании тега CustomVisualizer, но он находится в файле схемы natvis и отображается при автозаполнении. я нашел это PyTools Кажется, для реализации пользовательских визуализаторов natvis с использованием этого метода, но кажется, что часть кода скрыта, и я не могу найти источник для фактического родного визуализатора с помощью этого метода.

Вот пример файла natvis, который я хотел бы заставить работать:

<?xml version="1.0" encoding="utf-8" ?>
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
<Type Name="MyCustomVisualizer">
<CustomVisualizer VisualizerId="{387446F9-4B29-4EE7-A948-346BF6995603}"/>
</Type>
</AutoVisualizer>

И я спрашиваю конкретно о том, как написать код на C # и / или C ++, чтобы это работало.

4

Решение

https://code.msdn.microsoft.com/Writing-graphical-debugger-a17e3d75

Вы хотите использовать UIVisualizer вместо CustomVisualizer. Хотя CustomVisualizer отображается в схеме, по-видимому, нет документации по этому поводу. С UIVisualizer вы получите окно инспектора в виде часов, которое запустит визуализатор. Использование идентификаторов GUID, связанных с UIVisualizer, также обсуждается в этой ссылке.

2

Другие решения

Понял это. Вы можете увидеть источник на https://github.com/chromium/vs-chromium

TL; DR — Там много работы, я, вероятно, сделал что-то не так, и это нелегко.

1

Я не как использую CustomVisualizer, но, возможно, визуализатор, который использует LegacyAddin может решить вашу проблему https://stackoverflow.com/a/11545420/61505

0
По вопросам рекламы [email protected]