Visual Studioアドインを実装していますが、C#エディターでクラスまたはメソッドが削除されたときにサービスに通知を受け取りたいです。それを行う方法を示すサンプルはありますか?
1 に答える
2
おそらく、DTE2オブジェクトを介して公開されたコードモデルイベントを探しています。フル機能の同期を行うには、ElementChangedイベントとElementAddedイベントも処理する必要があります。
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;
}
}
于 2010-01-24T13:29:25.083 に答える