visual studio para objetos mejores listas las iconos extensiones ejemplos dinamicos codigo code clases c# visual-studio ide

studio - listas en c#



¿Cómo puedo hacer que todas las clases identificables ID coloreadas de forma diferente en el IDE de Visual Studio? (7)

El título lo cubre todo. Me gustaría que las clases que implementan IDisposable aparezcan en un color específico para que pueda saber si debo envolverlas en un bloque de uso. ¿Hay una configuración o un proceso mediante el cual puede extender el IDE?



No estoy seguro, si FXCop o StyleCop pueden hacer esto ya. Pero entonces, será una sugerencia / advertencia posterior a la compilación.

Resharper sugiere esto, supongo.


No puedes. Esto requeriría soporte de servicio de idioma y ni C # ni VB.Net proporcionan esta funcionalidad.

No se puede decir que sea demasiado fuerte. Sin duda, es posible hacer esto con un complemento que hace una inspección profunda del código y determina las jerarquías. Sin embargo, es una tarea no muy trivial.


Por supuesto, existe un gran conjunto de herramientas para compilar extensiones VS, consulte Visual Studio 2008 SDK 1.1. Sin embargo, el tiempo necesario para compilar dicho complemento requerirá más tiempo que pasará examinando los componentes y determinando si son desechables o no.



Tal vez soy una mala persona para hacer esto, pero he estado usando este fragmento de código recientemente:

public static void BulkDispose(object[] objects) { foreach (object o in objects) { if (o != null) { if (o is IDisposable) { IDisposable disposable = o as IDisposable; disposable.Dispose(); } } } }


Supongo que será más fácil / extensión una vez que salga Roslyn, pero actualmente no es fácil porque no se puede acceder fácilmente al código como C # desde una extensión.

¡En Resharper es fácil, sin embargo! Mi ejemplo fue probado en ReSharper 9.0. Lamentablemente, no hay una manera fácil de darte esto.

  • Resharper -> Opciones -> Inspección del código -> Patrones personalizados -> Agregar, diálogo emergente
  • Seleccione C # (arriba a la izquierda)
  • Seleccione "Buscar" (arriba a la derecha)
  • Agregue el patrón de new $disp$($args$)
  • Gravedad del patrón: Mostrar como sugerencia
  • Descripción: construcción desechable
  • "Agregar marcador de posición" de tipo: Tipo, nombre: disp , tipo: System.IDisposable
  • "Agregar marcador de posición" de tipo: Argumentos, nombre: args

Guarde y obtendrá una "sugerencia" cada vez que se construya un nuevo desechable.

Añadiendo el patrón $disp$ $var$ = $exp$; también podría ser útil. Todas las cosas iguales con exp se definen como una expresión.