0

我正在处理 SharePoint 2016 CSOM 以获取列表项版本历史记录。不幸的是,我没有得到字段值。请在下面找到代码。

       var file = item.File;
            var versionFiles = file.Versions;
            var fa = file.ListItemAllFields;

            clientContext.Load(fa);
            clientContext.Load(file);
            clientContext.Load(versionFiles);
            clientContext.ExecuteQuery();


            if (null != versionFiles)
            {
                var fileVersion = file.Versions[5];
                SP.File oldFile =web.GetFileByServerRelativeUrl("/sites/site/_vti_history/1234/list1/file1.pdf");
                var allField = oldFile.ListItemAllFields;
                clientContext.Load(allField);


             }
4

1 回答 1

0

您可以从 Lists.asmx 中获取版本历史元数据。

示例代码:

var web = clientContext.Web;
                List spList = clientContext.Web.Lists.GetByTitle("MyDoc");                
                var item = spList.GetItemById(43);
                clientContext.Load(spList);
                clientContext.Load(item);
                clientContext.ExecuteQuery();

                #region customList
                Lists.Lists listService = new Lists.Lists();
                listService.Credentials = System.Net.CredentialCache.DefaultCredentials;

                listService.Url = siteUrl + "/_vti_bin/lists.asmx";
                XmlNode nodeAttachments = listService.GetVersionCollection(spList.Id.ToString(), item.Id.ToString(), "Title");

                foreach (System.Xml.XmlNode xNode in nodeAttachments)
                {
                    Console.WriteLine(xNode.Attributes["Title"].Value);
                }
于 2018-07-26T02:51:43.367 回答