C# SharePoint item.File-ServerObjectNullReferenceException
我正在尝试加载列表中所有文件项的信息。在此代码段中,C# SharePoint item.File-ServerObjectNullReferenceException,c#,sharepoint,sharepoint-clientobject,C#,Sharepoint,Sharepoint Clientobject,我正在尝试加载列表中所有文件项的信息。在此代码段中,item指的是一个ListItem switch(item.FileSystemObjectType) { case FileSystemObjectType.File: if (ListOptions.IndexFileItems) { ClientContex
item
指的是一个ListItem
switch(item.FileSystemObjectType)
{
case FileSystemObjectType.File:
if (ListOptions.IndexFileItems)
{
ClientContext.Load(item, i => i.File);
ClientContext.ExecuteQuery();
if (item.File.Exists)
当代码运行时,它到达最后一行,然后抛出ServerObjectNullReferenceException
我不理解这一点,因为该项在其
FileSystemObjectType
中已声明其自身为File
类型,我是否应该在加载File
属性后不期望该属性具有引用?是否加载的文件不正确?ListItem.file在文档库中使用,请确保列表对象是库:
我测试了下面的代码片段,按预期工作:
ClientContext ctx = new ClientContext("http://sp/sites/dev/");
List list = ctx.Web.Lists.GetByTitle("dccc");
CamlQuery caml = new CamlQuery();
ListItemCollection items = list.GetItems(caml);
ctx.Load(items);
ctx.ExecuteQuery();
foreach (ListItem item in items)
{
switch (item.FileSystemObjectType)
{
case FileSystemObjectType.File:
ctx.Load(item, i => i.File);
ctx.ExecuteQuery();
if (item.File.Exists)
{
Console.WriteLine(item.File.Name);
}
break;
}
}
因此,这些文件是两个jpg文件:
谢谢。我想我需要选中前面提到的list.BaseTemplate。我现在想知道,由于我的CamlQuery是递归的,子列表对它们的父列表是否可以有不同的类型。