簡體   English   中英

如何創建Visual Studio字符串可視化器?

[英]How to create a Visual-Studio string visualizer?

我試圖為IDictionary或ICollection創建可視化器

然后像簡單的可視化器(沒有對話框;我的意思是當將鼠標懸停在變量上時出現的常用字符串可視化器,請參見下圖),我要制作我的自定義文本,我想將集合轉換為其類型的列表(即將StringCollection列表化) (字符串)或列表),然后我將能夠在可視化器中看到它。 或對於“字典”顯示以列出用於鍵和值的可視化程序。

任何想法如何實施甚至如何開始?

我將盡快更新我的問題。

這是我想到的:

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可視化工具:

替代文字

我想為ICollection(或IList),IDictionary等使用類似的東西。

注意,在數組中,可視化工具顯示每個嵌套的對象。 這實際上是我要實現的目標

d

嘗試可視化一個列表,您將看到有一個私有值_items,因此您可以看到其項目。 我想在收藏和字典中實現類似的目的。

Code Project上有許多示例。 這是我最有經驗的: DataSet Visualizer

我自己安裝並使用過它,所以我知道它有效。 Is比您需要的要先進,因為它實際上顯示了整個ADO數據集,但是代碼應該很容易修改。

這里還有一些其他鏈接可簽出:

項目1

項目二

我發現已經存在的東西:

http://www.codeproject.com/KB/macros/ListVisualizer.aspx ,但仍不會顯示對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM