Creé formulario con cuadrícula para visualizar cualquier objeto de recopilación (ICollection
, ICollection<T>
).Visualizador de depuración para cualquier ICollection e ICollection <T> tipos
Después de eso creé la clase de visualizador de depuración (hereda de Microsoft.VisualStudio.DebuggerVisualizers.DialogDebuggerVisualizer
).
El visualizador está instalado correctamente (lo probé en la clase System.Collections.ArrayList
).
Pero tengo un problema con generalizar el visualizador a cualquier tipo ICollection
/ICollection<T>
.
que especifica el atributo:
[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")]
pero el visualizador no es ofrecido por VS en depuración.
Si especifico el nombre exacto de la clase, el visualizador está disponible en VS. ¿Hay forma, cómo llevar a cabo mi intención o no hay forma, cómo lograrla?
Gracias!
¡Gracias! La solución parece un poco loca. Pero será propagablemente única manera, cómo lograr mi propósito. – TcKs
¿El problema es que no puede crear un visualizador para una clase genérica, o que no puede registrar el mismo visualizador para 2 tipos "diferentes"? –
Los visualizadores del depurador no funcionarán en los tipos de interfaz, solo en las clases (excepto System.Array y System.Object). Tienes que especificar una clase específica. Puede crear un visualizador para una clase genérica, pero el soporte está limitado a los tipos genéricos abiertos, como se documenta en: http://msdn.microsoft.com/en-us/library/e2zc529c.aspx –