Как создать визуализатор строк Visual-Studio?

1

Я пытался создать визуализатор для IDictionary или ICollection

Затем, как и простой визуализатор (без диалога, я имею в виду визуализатор строки ввода, который появляется при зависании переменной, см. рисунок ниже), я хочу создать свой собственный текст, я хочу, чтобы коллекция была включена в его список типов (IE StringCollection to List (Of String) или List), а затем я смогу увидеть его в визуализаторе. Или для словарей показать списки визуализаторов для ключей и значений.

Любые идеи о том, как реализовать или даже начать?

Я скоро обновлю свой вопрос.

Это то, о чем я думал:

using System.Collections.Specialized;
using System.Collections;

namespace ConsoleApplication2
{
    static class Program
    {
        static void Main(string[] args)
        {
            System.Collections.Specialized.StringCollection collection = new StringCollection();
            collection.AddRange(new string[] { "string1", "string2", "sting3" });
            string[] visualizable = collection.ConvertToVisualizableList();

            Dictionary<string,string> dic = new Dictionary<string,string>
            {
              {"key1","value"},
              {"key2","value"}
            };
            string[,]      visualizable2 = dic.ConvertToVisualizableDictionary();



        }

        static string[] ConvertToVisualizableList(this IList collection)
        {
            lock (collection)
            {
                if (collection == null) return null;
                int length = collection.Count;
                string[] list = new string[length];

                for (int i = 0; i < length; i++)
                {
                    object item = collection[i];
                    if (item != null) list[i] = item.ToString();
                }

                return list.ToArray();
            }
        }

        static string[,] ConvertToVisualizableDictionary(this IDictionary dictionary)
        {
            if (dictionary == null) return null;
            int length = dictionary.Count;
            string[,] list = new string[length, 2];

            int i = 0;
            foreach (object item in dictionary.Keys)
            {
                list[i, 0] = item.ToString();
                object value = dictionary[item];
                if(value!=null) list[i, 1] = value.ToString();
                i++;
            }
            return list;
        }
    }
}

Это визуализаторы VS для массивов и многомерных массивов:

Изображение 174551

Я хочу использовать что-то подобное для ICollection (или IList), IDictionary и т.д.

Обратите внимание, что в массивах визуализатор показывает каждый вложенный объект. На самом деле я хочу достичь:

Изображение 174551.

Попробуйте визуализировать список, и вы увидите, что есть личное значение _items, чтобы вы могли видеть его элементы. Я хочу добиться чего-то подобного в коллекции и словаре.

Теги:
visual-studio-2008
debuggervisualizer

2 ответа

1
Лучший ответ

В Code Project есть несколько примеров. Это тот, с которым у меня больше всего опыта: DataSet Visualizer

Я установил и использовал его сам, поэтому я знаю, что он работает. Является более продвинутым, чем вам нужно, поскольку на самом деле отображает все наборы данных ADO, но код довольно легко изменить.

Вот несколько других ссылок, чтобы проверить:

Проект 1

Проект 2

  • 0
    На самом деле я хочу контролировать область, где появляется строка, я хочу, чтобы она стала местом для визуализатора, возможно ли это?
  • 1
    Я знаю, что API визуализатора является широким и мощным, но вам придется испачкать руки. Какая-нибудь из этих трех ссылок показалась вам близкой к тому, как вы хотите, чтобы ваш визуализатор работал? я бы выбрал один и побежал с ним. Есть десятки статей из обычного поиска Google: google.com/… А эта из статей доктора Добба выглядит особенно многообещающе: ddj.com/windows/184406197
Показать ещё 6 комментариев
0

Я нашел что-то, что уже существует:

http://www.codeproject.com/KB/macros/ListVisualizer.aspx, но он все равно не будет показывать объекты.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню