J'implémente Visual Studio Add-in et je souhaite que mon service soit averti lorsque la classe ou la méthode est supprimée dans l'éditeur C#. Y a-t-il des échantillons montrant comment faire cela?Comment écouter les événements de modèle de code Visual Studio?
1
A
Répondre
2
Vous recherchez probablement des événements de modèle de code exposés via l'objet DTE2. Pour la synchronisation en fonctionnalités, vous aurez besoin pour gérer les événements ElementChanged et ElementAdded ainsi:
public void RegisterCodeModelEvents(DTE2 applicationObject)
{
events = (Events2)applicationObject.Events; //events Must be a field
codeModelEvents = events.get_CodeModelEvents(null);
codeModelEvents.ElementChanged += CodeModelElementChanged;
codeModelEvents.ElementAdded += CodeModelElementAdded;
codeModelEvents.ElementDeleted += CodeModelElementDeleted; // this is it!
}
Ne pas oublier d'enlever les gestionnaires après avoir terminé:
private void UnregisterCodeModelEvents()
{
if (codeModelEvents != null)
{
codeModelEvents.ElementAdded -= CodeModelElementAdded;
codeModelEvents.ElementChanged -= CodeModelElementChanged;
codeModelEvents.ElementDeleted -= CodeModelElementDeleted;
}
}
Juste par curiosité: Pourquoi voudriez-vous Voulez-vous être averti pour cela? – Pieter888
Je veux que le modèle de code soit synchronisé avec les diagrammes de classes, presque comme le concepteur de classe. :) –