访问SharePoint 2010列表项中版本历史记录的属性

本文关键字:历史 记录 属性 版本 SharePoint 2010 列表 访问 | 更新日期: 2023-09-27 18:06:58

我有一个自定义应用程序,它使用SharePoint 2010来存储列表项并对这些项进行版本化。搜索通过搜索服务工作,并且使用客户端对象模型成功地进行了更新。我们现在正在尝试检索旧版本列表项的自定义属性,以显示给用户,类似于SharePoint显示历史信息的方式,它提取文件版本,然后显示更改的属性列表。

现在我们有以下内容,但是文件的版本没有显示任何可用的属性,尽管当我们在屏幕上查看历史记录时SharePoint确实显示了更改。

using (ClientContext context = new ClientContext(spURL)) {
    Web site = context.Web;
    context.Load(site);
    context.ExecuteQuery();
    File file = site.GetFileByServerRelativeUrl(sRelativeObjectPath);
    context.Load(file);
    context.ExecuteQuery();
    FileVersionCollection versions = file.Versions;
    context.Load(versions);
    context.ExecuteQuery();
    foreach (FileVersion ver in versions)
    {
        File verFile = site.GetFileByServerRelztiveUrl(ver.Url);
        context.Load(verFile, f => f.ListItemAllFields);
        //verFile.ListItemAllFields.FieldValues are null, need to get the properties of the ListItem

    } 
}

关于我应该如何拉版本的属性值的任何想法?这不能在SharePoint中运行,所以我不能访问SharePoint.dll来使用SPQuery和SPItem。

访问SharePoint 2010列表项中版本历史记录的属性

File类中有File.ListItemAllFields属性,您可以使用关联的列表项及其字段。