9

Al intentar desarrollar mi primer complemento VS, tengo problemas para activar eventos DTE2.Los eventos DTE2 no se activan

Básicamente, los eventos DocumentOpened y LineChanged no se activan por algún motivo. ¿Qué parte importante extrañé?

namespace TestAddin { 
    public class Connect : IDTExtensibility2 { 
    private AddIn _addInInstance; 
    private DTE2 _applicationObject; 

    public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom) { 
     _applicationObject = (DTE2) application; 
     _addInInstance = (AddIn) addInInst; 

     _applicationObject.Events.DocumentEvents.DocumentOpened += InitializeFoldingOnDocument; 
     _applicationObject.Events.TextEditorEvents.LineChanged += UpdateFoldingOnDocument; 
    } 

    private void UpdateFoldingOnDocument(TextPoint startpoint, TextPoint endpoint, int hint) { 
     RegionFolding(_applicationObject.ActiveDocument); 
    } 

    private void InitializeFoldingOnDocument(Document document) { 
     RegionFolding(document); 
    } 

    private void RegionFolding(Document _document) { 
     // Do the folding [...] 
    } 

    // Other IDTExtensibility2 Members [...] 
    } 
} 

Respuesta

20

Debe guardar la clase DocumentEvents. Creo que serán desterrados o recogidos basura más.

En mi caso.

+0

Eso es todo, gracias! – fjdumont

+1

Siendo un desarrollador de VSX novato aquí, este me dio bastante bien. Si alguien está interesado aquí está el artículo del problema de Microsoft KB sobre el tema: http://support.microsoft.com/kb/555430 –

+0

No sé cómo lo descubrió, ¡pero esto es brillante! –

0

Encontré una solución diferente a este problema.

Estaba encajonando y desempaquetando mi objeto DTE antes de hacer mis suscripciones a eventos. Esto definitivamente resultó ser el culpable para mí. Si bien este no era su problema, podría ayudar a otros que tienen problemas similares; y es bueno saberlo para que no cometas los mismos errores que yo, lo que demoró mucho tiempo en resolverse.

Ver aquí: http://social.msdn.microsoft.com/Forums/en-US/vsx/thread/eb1e8fd1-32ad-498c-98e9-25ee3da71004

Cuestiones relacionadas