Excel.Application.SelectionChange仅触发一次

Excel.Application.SelectionChange仅触发一次,excel,vsto,ms-office,add-in,Excel,Vsto,Ms Office,Add In,我只收到第一个事件通知,之后什么也没有发生。 有什么想法吗? UPD:我发现了一件奇怪的事情。我的事件处理程序代码如下所示: var cell = range.Cells[1, 1]; var rangeName = cell.Address[false, false, XlReferenceStyle.xlA1, Type.Missing, Type.Missing]; 我以这种方式对其进行了更改,添加了显式类型

我只收到第一个事件通知,之后什么也没有发生。 有什么想法吗?
UPD:我发现了一件奇怪的事情。我的事件处理程序代码如下所示:

                    var cell = range.Cells[1, 1];
                    var rangeName = cell.Address[false, false, XlReferenceStyle.xlA1, Type.Missing, Type.Missing];
我以这种方式对其进行了更改,添加了显式类型转换:

                    var cell = (Range)range.Cells[1, 1];
                    var rangeName = cell.Address[false, false, XlReferenceStyle.xlA1, Type.Missing, Type.Missing];

现在,我的事件处理程序被调用了好几次,然后才停止调用。

由于COM Interop跟踪事件处理程序的方式,垃圾收集器可以清除阻止您接收事件的RCW

确保保留对具有事件处理程序的对象的引用,例如,不要写入:

Application.CurrentWorkbook.SelectionChanged += ....

class ThisAddin
{
    WorkBook _workbook;

    void AddinLoaded()
    {
        _workbook.SelectionChanged += ....
    }
}