2

好的,所以我对 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 事件中),现在在我选择要上传的文件后显示此错误,知道为什么吗?

谢谢你的帮助!

4

3 回答 3

4

这不是“对象引用错误”,这是NullReferenceException由于您尝试访问 的索引运算符(itemnull.

您可以通过在语句的行中设置断点if并将鼠标悬停在不同的变量上来发现这一点。

要解决此问题,请确保properties.ListItem包含非空值或在 if 中插入另一个检查:

if (item == null || item["Name"] == null)
于 2012-09-06T21:00:27.133 回答
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 

it seems that item or more specific properties.ListItem is null! As item is just a reference.

于 2012-09-06T21:02:36.470 回答
0

你可能得到了错误,因为SPListItem item它是空的。您不能访问空变量。您可以尝试将您的代码更新为:

       SPListItem item = properties.ListItem;

       if (item == null || item["Name"] == null) 
           return; //or better yet, log
于 2012-09-06T21:00:56.237 回答