繁体   English   中英

对象引用未设置为对象的实例...错误?

[英]Object reference not set to an instance of an object…Error?

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

谢谢你的帮助!

它不是“对象引用错误”,它是由于您尝试访问item的索引运算符而导致的NullReferenceException ,该运算符为null

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

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

if (item == null || item["Name"] == null)

您可能会收到错误,因为SPListItem item为null。 您无法访问null变量。 您可以尝试将代码更新为:

       SPListItem item = properties.ListItem;

       if (item == null || item["Name"] == null) 
           return; //or better yet, log
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为null! 由于item只是一个参考。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM