【发布时间】:2013-01-04 22:16:48
【问题描述】:
我使用“Add-In for Visual Studio”向导创建了一个新的 Addin 项目,现在我正在尝试添加一些事件处理程序:
public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom)
{
_applicationObject = (DTE2)application;
_addInInstance = (AddIn)addInInst;
_applicationObject.Events.BuildEvents.OnBuildBegin += BuildEvents_OnBuildBegin;
_applicationObject.Events.BuildEvents.OnBuildDone += BuildEvents_OnBuildDone;
_applicationObject.Events.SelectionEvents.OnChange += SelectionEvents_OnChange;
_applicationObject.Events.DocumentEvents.DocumentOpened += DocumentEvents_DocumentOpened;
_applicationObject.Events.DocumentEvents.DocumentSaved += DocumentEvents_DocumentSaved;
}
但无论我做什么,我的处理程序都不会被执行!
我是瞎了吗?我是否需要做任何其他事情来注册这些处理程序,或者为什么它不起作用?
【问题讨论】:
-
我也有同样的问题....有时。有时当我部署时,事件会起作用..有时不会。没有意义。
-
对于 BuildEvents:此 API 支持 .NET Framework 基础结构,不能直接从您的代码中使用。仅限 Microsoft 内部使用。
-
也许 _applicationObject 正在被垃圾收集?
标签: c# events visual-studio-2012 add-in envdte