[更新]我不再使用事件,但我真的很想知道为什么会发生这种情况。
我有一个事件处理程序,可以在 umbraco 后台复制多语言站点的内容节点。
在我将我的 umbraco 数据库更改为同事的数据库之前,这一直运行良好(这对代码没有任何影响)。
单步执行我的代码,我看到处理程序没有被删除(或者更确切地说,它似乎被删除但无论如何都会触发)并且节点被一遍又一遍地复制。
foreach (var id in _listOfParentIds.Where(id => id != parentNode.Id))
{
lock (Locker)
{
Document.New -= SaveLangDupelicates; // remove event to prevent it from firing after copying
dupeDoc.Copy(id, User.GetCurrent(), true); // copy the document to the relevant parent node
Document.New += SaveLangDupelicates; // reinstate the event
}
}
任何想法为什么会发生这种情况?