ビジュアルスタジオコードモデルイベントを聞く方法は?
-
18-09-2019 - |
質問
Visual Studioアドインを実装しており、C#エディターでクラスまたはメソッドが削除されたときにサービスに通知されたいと考えています。それを行う方法を示すサンプルはありますか?
解決
おそらく、DTE2オブジェクトを介して公開されるコードモデルイベントを探しているでしょう。完全に機能する同期のために、要素変化したイベントとエレメンタドイベントも処理する必要があります。
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!
}
終了後にハンドラーを削除することを忘れないでください:
private void UnregisterCodeModelEvents()
{
if (codeModelEvents != null)
{
codeModelEvents.ElementAdded -= CodeModelElementAdded;
codeModelEvents.ElementChanged -= CodeModelElementChanged;
codeModelEvents.ElementDeleted -= CodeModelElementDeleted;
}
}
所属していません StackOverflow