Sharepoint字段尚未在C#中初始化
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sharepoint字段尚未在C#中初始化相关的知识,希望对你有一定的参考价值。
我正在编写一个代码,它将遍历sharepoint列表中的每个列表项并查找空字段。如果找到空字段,则通过电子邮件通知负责列表项的人员。
我在val = oListItem[field.Title];
行发出错误
属性或字段尚未初始化。尚未请求或请求尚未执行。可能需要明确请求。
在我看来,我已经在该行之前初始化了所有内容。
static void Main()
{
ClientContext context = new ClientContext("https://****");
context.Credentials = new NetworkCredential("****", "****");
List oList = context.Web.Lists.GetByTitle("TestBI");
FieldCollection fieldcol = oList.Fields;
context.Load(oList);
context.Load(fieldcol);
context.ExecuteQuery();
ListItem oListItem = oList.GetItemById(1);
object val = null;
for (int i = 1; i <= 4; i++)
{
oListItem = oList.GetItemById(i);
foreach (Field field in fieldcol)
{
val = oListItem[field.Title];
if(val == null)
{
//Send e-mail
}
}
}
context.ExecuteQuery();
}
答案
欢迎来到SharePoint CSOM地狱。
您确实加载了List和FieldCollection,但您还必须加载每个Field。实际上,您必须加载要从中获取属性的每个SharePoint对象。
for (int i = 1; i <= 4; i++)
{
oListItem = oList.GetItemById(i);
foreach (Field field in fieldcol)
{
context.Load(field);
context.ExecuteQuery();
val = oListItem[field.Title];
if(val == null)
{
//Send e-mail
}
}
}
以上是关于Sharepoint字段尚未在C#中初始化的主要内容,如果未能解决你的问题,请参考以下文章
LateInitializationError:字段尚未在 Flutter 中初始化
使用C#更改文件的Microsoft Sharepoint字段值?
LateInitializationError:字段“chatRoomsStream”尚未在 Flutter 中初始化