1
我正在实现Visual Studio加载项,并希望在C#编辑器中删除类或方法时通知我的服务。有没有示例显示如何做到这一点?如何监听Visual Studio代码模型事件?
我正在实现Visual Studio加载项,并希望在C#编辑器中删除类或方法时通知我的服务。有没有示例显示如何做到这一点?如何监听Visual Studio代码模型事件?
您可能正在寻找通过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;
}
}
只是出于好奇:你为什么会想要通知它? – Pieter888 2009-12-10 11:21:13
我希望代码模型与类图同步,就像类设计器一样。 :) – 2009-12-10 13:31:04