好的,所以我对C#完全陌生,我正在尝试调试错误。基本上我正在尝试为SharePoint列表创建一个EventReceiver ...这是在我调试时给出对象引用错误的代码:
public override void ItemAdding(SPItemEventProperties properties)
{
base.ItemAdding(properties);
SPListItem item = properties.ListItem;
if (item["Name"] == null)
return; //or better yet, log
string oldFileName = item["Name"].ToString();
我正在做的是进入调试模式,并选择将文件添加到SharePoint库(这是在ItemAdding事件中),现在在我选择要上传的文件后显示此错误,任何想法为什么?< / p>
感谢您的帮助!
答案 0 :(得分:4)
这不是“对象引用错误”,它是NullReferenceException
引起的,因为您正在尝试访问item
的索引运算符null
。
您可以通过在if
语句的行中设置断点并将鼠标悬停在不同的变量上来找到它。
要解决此问题,请确保properties.ListItem
包含非空值或在if中插入另一项检查:
if (item == null || item["Name"] == null)
答案 1 :(得分:0)
您可能收到错误,因为SPListItem item
为空。您无法访问null变量。您可以尝试将代码更新为:
SPListItem item = properties.ListItem;
if (item == null || item["Name"] == null)
return; //or better yet, log
答案 2 :(得分:0)
SPListItem item = properties.ListItem;
System.Debug.Assert(item != null, "item is null.");
if (item["Name"] == null) --DEBUGGER STOPS HERE
return; //or better yet, log
似乎item
或更具体的properties.ListItem
为空!
因为 item
只是一个参考。