Utworzono formularz z siatką do wizualizacji dowolnego obiektu kolekcji (ICollection
, ICollection<T>
).Wizualizator debuggera dla dowolnego ICollection i ICollection <T> typy
Następnie utworzyłem klasę wizualizatora debuggera (dziedziczy po Microsoft.VisualStudio.DebuggerVisualizers.DialogDebuggerVisualizer
).
Wizualizer jest zainstalowany prawidłowo (próbowałem go na klasie System.Collections.ArrayList
).
Ale mam problem z uogólnieniem wizualizatora na dowolny typ ICollection
/ICollection<T>
.
I określony atrybut:
[assembly: DebuggerVisualizer(typeof(DebugerSide), typeof(VisualizerObjectSource), Target = typeof(System.Collections.Generic.ICollection<>), Description = "Collection visualizer")]
[assembly: DebuggerVisualizer(typeof(DebugerSide), typeof(VisualizerObjectSource), Target = typeof(System.Collections.ICollection), Description = "Collection visualizer")]
ale wizualizer nie jest oferowany przez VS w debugowania.
Jeśli podam dokładną nazwę klasy, wizualizator jest dostępny w VS. Czy istnieje sposób, jak wykonać moją intencję lub nie ma sposobu, jak to osiągnąć?
Dzięki!
Dziękujemy! Obejście to wygląda na zwariowanego. Ale będzie to prawdopodobnie jedyna droga, jak osiągnąć mój cel. – TcKs
Problem polega na tym, że nie można utworzyć wizualizatora dla klasy ogólnej lub że nie można zarejestrować tego samego wizualizatora dla 2 "różnych" typów? –
Wizualizatory debuggera nie będą działały na typach interfejsów, tylko na klasach (z wyjątkiem System.Array i System.Object). Musisz określić konkretną klasę. Możesz utworzyć wizualizator dla klasy ogólnej, ale wsparcie jest ograniczone do otwartych typów ogólnych - jak udokumentowano na: http://msdn.microsoft.com/en-us/library/e2zc529c.aspx –