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?¿Cómo puedo hacer que todas las clases identificables ID coloreadas de forma diferente en el IDE de Visual Studio?
Respuesta
Sin duda es posible hacer esto, aunque no es tan simple como simplemente cambiar una configuración. Debería escribir un complemento de Visual Studio para lograr esto.
Visita http://msdn.microsoft.com/en-us/vsx/bb980955.aspx para comenzar. Como otros señalarán. Esto no es para los débiles de corazón.
Aquí hay un enlace que puede apuntar hacia lo que busca: http://msdn.microsoft.com/en-us/library/bb166778.aspx
No puede. Esto requeriría soporte de servicio de idioma y ni C# ni VB.Net proporcionan esta funcionalidad.
Can not probablemente 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.
Claro, no es un gran conjunto de herramientas para crear extensiones de VS, see Visual Studio 2008 SDK 1.1 Pero el tiempo necesario para construir un complemento tales se requieren más tiempo que usted pasará examinando componentes y determinando si son Desechables o no
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.
La palabra en la calle es este tipo de cosas be much easier in VS.NET 2010. El editor está siendo reescrito en WPF.
Tal vez yo soy una mala persona para hacer esto, pero yo he estado utilizando este pedazo 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();
}
}
}
}
No es infrecuente que Dispose arroje excepciones ("ya desechado"), por lo que desearía que cada llamada a disposición finalice en un try/catch. –
Eliminar shoud * never * throw debido a múltiples llamadas. Si lo hace, el componente en cuestión no cumple con el contrato IDisposable. Consulte https://msdn.microsoft.com/en-us/library/system.idisposable.dispose.aspx en Observaciones: "El objeto no debe lanzar una excepción si su método Dispose se llama varias veces". – bernhof
Supongo que esto será más fácil/sin extensión vez Roslyn sale, pero esto 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 -> Código de Inspección -> Patrones personalizados -> Añadir, popsup de diálogo
- Seleccionar C# (parte superior izquierda)
- Seleccione "Find" (parte superior derecha)
- Añadir el patrón de la gravedad de
new $disp$($args$)
- patrón: Mostrar como sugerencia
- Descripción: construcción desechable
- "Agregar marcador de posición" de tipo: tipo, nombre:
disp
, escribe: Sistema.IDisposable - "Añadir marcador de posición" de tipo: Argumentos, nombre:
args
Guardar y usted ahora recibe una "sugerencia" siempre que un nuevo desechable se está construyendo.
Agregando el patrón $disp$ $var$ = $exp$;
también podría ser útil. Todas las cosas iguales con exp se definen como una expresión.
- 1. ¿Cómo se puede cambiar el perfil IDE de Visual Studio?
- 2. Ejecute todas las pruebas abiertas en Visual Studio
- 3. Cierre todas las pestañas en Visual Studio
- 4. Encontrar todas las clases que heredan una interfaz en Visual Studio
- 5. ¿Cómo puedo hacer que Visual Studio se rompa justo antes de que se detenga el programa?
- 6. ¿Cómo puedo hacer un seguimiento de (enumerar) todas las clases que implementan una interfaz?
- 7. Creación de scripts en el IDE de Visual Studio
- 8. ColdFusion IDE? Plugin de Visual Studio?
- 9. ¿Cómo puedo hacer que mi Visual Studio se vea así?
- 10. ¿Cómo puedo hacer una macro de Visual Studio para adjuntar el depurador a todas las instancias de w3wp.exe?
- 11. ¿Cómo puedo hacer que las líneas de envoltura de Visual Studio tengan 80 caracteres?
- 12. Eclipse ¿Reemplazar texto en todas las clases?
- 13. ¿Cerrar todas las ventanas de herramientas en Visual Studio?
- 14. ¿Cómo puedo ocultar el código de seguimiento en Visual Studio IDE C#?
- 15. Non Visual Studio F # IDE
- 16. Cómo configurar Visual Studio para contraer todas las regiones de forma predeterminada?
- 17. Cómo depurar una biblioteca de clases en Visual Studio
- 18. Ejecución de pruebas como un usuario diferente en Visual Studio
- 19. Forma automática de poner todas las clases en archivos separados
- 20. En Visual Studio 2008, ¿cómo puedo hacer que el control + clic haga un "Ir a definición"?
- 21. "Tratar todas las advertencias como errores, excepto ..." en Visual Studio
- 22. encuentre todas las ocurrencias de comparación con == en visual studio
- 23. ¿Cómo puedo hacer que mousewheel funcione en VB6 IDE?
- 24. ¿Qué puedo hacer en VIM que no puedo hacer en Visual Studio?
- 25. ¿Ocultar todas las barras de herramientas de Visual Studio?
- 26. ¿Cómo puedo extraer todas las clases en un archivo separado?
- 27. ¿Cómo puedo cambiar la forma en que RAD Studio (2010 y posterior) IDE formatea mi código?
- 28. ¿Cómo recuperar todas las ID de objeto?
- 29. Python IDE integrado en Visual Studio 2008?
- 30. Visual Studio: ¿Cómo hacer que Cassini escuche en :: 1?
buenos puntos. aquí hay otro buen enlace http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.textmanager.interop.ivshicoloritem.aspx –
Solía programar objetos ATL COM. No soy pusilánime. – quillbreaker