【问题标题】:How to listen Visual Studio code model events?如何监听 Visual Studio 代码模型事件?
【发布时间】:2009-12-10 11:16:09
【问题描述】:

我正在实现 Visual Studio 插件,我希望在 C# 编辑器中删除类或方法时通知我的服务。是否有任何示例显示如何做到这一点?

【问题讨论】:

  • 只是出于好奇:您为什么希望收到通知?
  • 我希望代码模型与类图同步,就像类设计器一样。 :)

标签: visual-studio integration visual-studio-addins


【解决方案1】:

您可能正在寻找通过 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;
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-06
    • 2013-11-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多