C# 访问SharePoint 2010列表项中的属性以获取版本历史记录

C# 访问SharePoint 2010列表项中的属性以获取版本历史记录,c#,sharepoint,sharepoint-2010,csom,C#,Sharepoint,Sharepoint 2010,Csom,我有一个自定义应用程序,它使用SharePoint 2010存储列表项并对这些项进行版本设置。搜索正在通过搜索服务工作,并且使用客户端对象模型成功地进行了更新。我们现在尝试检索列表项的旧版本的自定义属性以向用户显示,类似于SharePoint显示历史记录信息的方式,从中提取文件版本,然后显示已更改属性的列表 现在我们有以下内容,但该文件的版本没有显示任何可显示的属性,即使SharePoint在屏幕上查看历史记录时确实显示了更改 using (ClientContext context = new

我有一个自定义应用程序,它使用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。

文件
类中有,您可以使用关联的列表项及其字段。

看起来您只需要在“context.Load(verFile,f=>f.ListItemAllFields);”之后添加“context.Load(verFile,f=>f.ListItemAllFields);@vinny+1,我没有读完整的源代码…请描述更多和一些例子。。。在这里请如果可能,描述如何获取属性,如上次修改日期或该版本创建的日期。。。或者创建它的用户名。或者如何获得特定的属性,如数字和上一版本的差异