je tente de créer un visualisateur pour IDictionary ou ICollectionComment créer un visualiseur de chaîne Visual-Studio?
alors comme simple Visualizer (sans dialogue, je veux dire Visualiseur chaîne ususal qui apparaît lors du survol de la variable, voir image ci-dessous), je veux faire ma commande texte, je veux transtyper la collection dans la liste de son type (IE StringCollection en List (Of String) ou List) et ensuite je pourrai le voir dans le visualizer. Ou pour les dictionnaires afficher des listes visualiseurs pour les clés et pour les valeurs.
Des idées comment mettre en œuvre ou même comment démarrer?
Je vais mettre à jour ma question bientôt.
C'est quelque chose que je pensais:
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;
}
}
}
Ce sont VS visualiseurs pour tableau et les tableaux multidimentionnelle:
Je veux utiliser quelque chose de similaire pour ICollection (ou IList), IDictionary etc.
Notez que dans les tableaux, le visualiseur affiche chaque objet imbriqué. C'est effectivement ce que je veux atteindre:
. Essayez de visualiser une liste et vous verrez qu'il ya une valeur privée _items, de sorte que vous pouvez voir ses éléments. Je veux réaliser quelque chose de similaire dans la collection et le dictionnaire.
En fait, ce que je veux, c'est contrôler la zone où la chaîne apparaît, je veux que cela devienne une place pour le visualiseur, est-ce possible? – Shimmy
Je sais que l'API visualizer est large et puissante, mais vous allez devoir vous salir les mains. Est-ce que l'un ou l'autre de ces trois liens semble proche de la façon dont vous voulez que votre visualiseur fonctionne? Je choisirais un et courrais avec. Il y a des dizaines d'articles d'une recherche de base de Google: http://www.google.com/search?rlz=1C1GGLS_en-USUS293US304&sourceid=chrome&ie=UTF-8&q=visual+studio+2005+custom+visualizer Et ce un des regards du Dr. Dobb est particulièrement prometteur: http: //www.ddj.com/windows/184406197 –
Merci beaucoup, a été très utile! Si/quand je vais créer le visualiseur, je l'afficherai ici! – Shimmy