Здесь можно рассмотреть как минимум два варианта:
Вариант 1
явно указать для загрузки только ChangeItem
через Microsoft.SharePoint.Client.ChangeQuery
:
var changeQuery = new ChangeQuery(false,true);
changeQuery.Item = true; //only load change item changes
и затем запрос на загрузку ChangeItem
определенных свойств, таких как:
ctx.Load(changes, cc => cc.Include(c => ((ChangeItem)c).FileSystemObjectType));
Пример
var changeQuery = new ChangeQuery(false,true);
changeQuery.Item = true; //only load change item changes
var changes = ctx.Web.GetChanges(changeQuery);
ctx.Load(changes, cc => cc.Include(c => c.ChangeType, c => ((ChangeItem)c).FileSystemObjectType));
ctx.ExecuteQuery();
foreach(var change in changes)
{
ChangeItem changeItem = change as ChangeItem;
Console.WriteLine("{0}: {1}",changeItem.ChangeType,changeItem.FileSystemObjectType);
}
Вариант 2
Допустим, вы предварительно загружаете все изменения следующим образом:
var changeQuery = new ChangeQuery(true,true);
var changes = ctx.Web.GetChanges(changeQuery);
ctx.Load(changes);
ctx.ExecuteQuery();
Затем можно запросить определенные свойства объекта ChangeItem
с дополнительным запросом, подобным следующему:
var changeItems = changes.OfType<ChangeItem>();
var changeItemsResult = ctx.LoadQuery(changeItems.Include(c =>c.ChangeType, c => c.FileSystemObjectType));
ctx.ExecuteQuery();
foreach (var changeItem in changeItemsResult)
{
Console.WriteLine("{0}: {1}",changeItem.ChangeType,changeItem.FileSystemObjectType);
}