用于防止SharePoint列表项事件接收器帮助的扩展方法
我遇到了这个帖子,它解决了在从事件接收器外部执行更新时阻止SPListItem触发事件接收器的问题。代码按照描述100%工作,我对解决方案印象深刻,问题是我不完全理解它。
为了简单起见,我们忽略了SystemUpdate方法,因此我们只处理SPListItem.Update重载和代码中声明的私有类。
我没有“得到”的位是类rh与SPListItem项“链接”或“关联”的方式。重现方法以保存单击返回...
public static void Update(this SPListItem item, bool doNotFireEvents)
{
SPItemEventReceiverHandling rh = new SPItemEventReceiverHandling();
if (doNotFireEvents)
{
try
{
rh.DisableEventFiring();
item.Update();
}
finally
{
rh.EnableEventFiring();
}
}
else
{
item.Update();
}
}
我可以看到我们实例化了一个SPItemEventReceiverHandling实例,rh,如果doNotFireEvents为true,我们在rh上调用DisableEventFiring(),然后在完成时我们在rh上调用EnableEventFiring()。我看不到的链接是“rh”和“item”之间的链接。在进行更新时,SharePoint如何“知道”使用rh作为事件接收器?
我希望我已经清楚地解释了这一点。如果没有让我知道,我会进一步澄清。
没有找到相关结果
已邀请:
2 个回复
疏腔傻小雹
才脊烽馈低