Sharepoint 2013 事件接收器 ItemUpdating - 检测附件

Sharepoint 2013 Event Receiver ItemUpdating - detect Attachments

我一直在寻找一种方法来检测使用 C# 开发的 SharePoint 2013 中的同步事件接收器对项目附件的更改。

ItemAdding 事件不相关,因为如果在创建项目的同时上传附件不是问题,但是,事件 ItemUpdating 更相关。事实上,如果仅在同步事件期间添加或删除一个(或多个)附件,我希望能够更新另一个字段。异步事件不是一个选项。

我尝试了 here 提供的解决方案,但没有成功:

你知道我该怎么做吗?

提前谢谢你,

凯文

编辑 4 月 19 日: 经过进一步调查,我发现Request.File中总是发送一个空文件,所以我现在知道Request.File.Count的原因了 总是至少等于 1。

通过添加一小段代码,我可以检测到正在添加一个或多个有效文件:

int attachCount = 0;  
HttpFileCollection fileCollection = curContext.Request.Files;  
for (int j = 0; j < fileCollection.Count; j++)
{
    HttpPostedFile file = fileCollection[j];
    if (file.ContentLength > 0)
    {
        attachCount++;
    }
}

剩下的就是如何在 ItemUpdating 事件中检测到附件已被删除,有什么想法吗?

提前致谢

经过多方查找,我使用ItemUpdated事件解决了专用字段中附件删除数量的问题。一切都按预期工作。唯一的缺点是用户可能需要等待几秒钟才能看到附件删除的影响。