Cómo desarrollar su propio complemento generador de código en Visual Studio
Clase Core Connect
). La entrada del complemento es la clase Connect. Mire el diagrama de clases de Connect:
Connect implementa el constructor del objeto del complemento. Introduzca el código de inicialización en este método.
OnConnection implementa el método OnConnection de la interfaz IDTExtensibility2. Recibir notificación de que se está cargando un programa externo.
OnDisconnection implementa el método OnDisconnection de la interfaz IDTExtensibility2. Recibir notificación de que se está desinstalando un programa externo.
OnAddInsUpdate implementa el método OnAddInsUpdate de la interfaz IDTExtensibility2. Reciba notificaciones cuando se realicen cambios en la colección de complementos.
OnStartupComplete implementa el método OnStartupComplete de la interfaz IDTExtensibility2. Reciba una notificación de que la aplicación host ha terminado de cargarse.
OnBeginShutdown implementa el método OnBeginShutdown de la interfaz IDTExtensibility2. Reciba una notificación de que se está desinstalando la aplicación host.
QueryStatus implementa el método QueryStatus de la interfaz IDTCommandTarget. Este método se llamará cuando se actualice la disponibilidad del comando.
Exec implementa el método Exec de la interfaz IDTCommandTarget. Este método se llamará cuando se llame al comando.
_applicationObject es una instancia DTE2 del objeto raíz de la aplicación host.
_addInInstance es la instancia del complemento actual, un objeto que representa esta aplicación de complemento.
Primero defina algunos objetos internos, principalmente comandos personalizados, como se muestra a continuación:
1 /// lt; objetos utilizados para implementar programas externos.
lt;/summarygt;
2 /// lt;ver también class='IDTExtensibility2' /gt;
3 conexión de clase pública: IDTExtensibility2, IDTCommandTarget
4 {
5 Definición del comando #region Además de FindInSolutionExplorer, los comandos aquí no se emiten según la función, sino según la ubicación donde aparece el comando
6 cadena privada de solo lectura MY_COMMAND_ FindInSolutionExplorer = "FindInSolutionExplorer";
7 cadena privada de solo lectura MY_COMMAND_Project = "cmdInProject"; //en el proyecto
8 cadena privada de solo lectura MY_COMMAND_Solution = "cmdInSolution";
9 cadena privada de solo lectura MY_COMMAND_MenuBar = "cmdInMenuBar"; // En la barra de menú
10 cadena privada de solo lectura MY_COMMAND_CodeWindow = "cmdInCodeWindow" ///Ventana de código
11 cadena privada de solo lectura MY_COMMAND_Files = " cmdInFiles";
12 #endregion
13
14 comando privado findCommand = null
15 privado; CommandBarButton findCommandBarButtonButton = nulo;
16 registrador AddInLogger privado = nulo
17
18 DTE2 privado _applicationObject
19 EnvDTE privado. AddIn _addInInstance ;
18 DTE2 privado _applicationObject;
19 EnvDTE privado.