获取变更日志的字段值

时间:2018-10-18 08:54:15

标签: c# sharepoint changelog

我正在使用Sharepoint(Nuget:Microsoft.SharePoint.Client v14.0),并且我尝试检索对特定列表的所有更改。因此,我使用C#,并且具有以下代码:

// defining which changes i will track
ChangeQuery cq = new ChangeQuery(false, false)
{
   Item = true,
   DeleteObject = true,
   Add = true,
   Update = true
};        

// here i get all changes in the past 24 hours
cq.ChangeTokenStart = new ChangeToken()
{
   StringValue = String.Format("1;3;{0};{1};-1", list.Id.ToString(), DateTime.Now.AddDays(-1).ToUniversalTime().Ticks.ToString())
};

// Retrieving the changelog
ChangeCollection coll = list.GetChanges(cq);

clientContext.Load(coll);

clientContext.ExecuteQuery();

到目前为止,一切正常。现在,我的ChangeCollection向我显示了具有更改类型的每个项目的更改,例如“更新”,“添加”等。我还正在检索哪个项目已更改,ID ...

但是现在我想检索特定字段和已更改的值。它应该显示给我: 在项目xy中,“标题”字段已从“你好”更改为“测试”

我了解到您必须获取File和FileVersionCollection,并且尝试了以下代码:

var changedItem = list.GetItemById(5);
clientContext.Load(changedItem);
clientContext.ExecuteQuery();

File fileVersion = web.GetFileByServerRelativeUrl(web.ServerRelativeUrl + "/Lists/" + list.Title + "/" + changedItem.Id + "_.000");
clientContext.Load(fileVersion);

FileVersionCollection fileVersions = fileVersion.Versions;
clientContext.Load(fileVersions);

clientContext.ExecuteQuery();

好吧,现在我可以检测到我更改了一个列表项的次数,但是有什么方法可以检索特定的字段和值?

0 个答案:

没有答案