У меня есть пользовательское приложение, которое использует SharePoint 2010 для хранения элементов списка и версии этих элементов. Поиск работает через службу поиска, а обновления успешно используют объектную модель клиента. Теперь мы пытаемся получить наши пользовательские свойства для старых версий элемента списка, чтобы показать пользователю, подобно тому, как SharePoint показывает информацию о истории, где он вытягивает версию файла, а затем показывает список измененных свойств.Доступ к свойствам в ListItem SharePoint 2010 для истории версий
Теперь у нас есть следующее, но версия файла не отображает никаких свойств, доступных для отображения, хотя 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.ExecuteQuery();» после "context.Load (verFile, f => f.ListItemAllFields);". – vinny
@vinny +1, я не читал весь исходный код ... –