C# 调试-下一步?

C# 调试-下一步?,c#,visual-studio,debugging,C#,Visual Studio,Debugging,以下代码行导致我出现异常 using (new INVU.API.CallContextStore()) { plug.Instance.AddDocuments(new Int32[] { val_pid }, val_ptype, val_doccat, val_subcat, val_doctype, val_notes, val_summary, SummaryAppendOptions.None, val_docStatus, new String[] { PDFFile }); }

以下代码行导致我出现异常

using (new INVU.API.CallContextStore())
{
plug.Instance.AddDocuments(new Int32[] { val_pid }, val_ptype, val_doccat, val_subcat, val_doctype, val_notes, val_summary, SummaryAppendOptions.None, val_docStatus, new String[] { PDFFile });
}
这是例外细节

System.Exception was caught
 Message=Object reference not set to an instance of an object. - Error when trying to save    document
 Source=SimsBridge

 StackTrace:
   at SimsBridge.Bridge.AddDocuments(Int32[] personIds, Int32 PersonType, String docCatagory, Int32 subCatagory, String docType, String notes, String summary, SummaryAppendOptions summaryOptions, String documentStatusCode, String[] filePaths)
   at ManagedScanDesktop.Form1.SimsScanComplete(String[] files) in C:\Working\ManagedScanDesktop 1.8\v1.8\ManagedScanDesktop\ManagedScanDesktop\Form1.cs:line 2619
InnerException: 
我已经试着调试这个程序好几个小时了,虽然我已经学到了很多关于这个程序如何工作的知识,但我还没有真正学到任何东西

我得到了一些关于使用调试信息的回答,这似乎证实了我对异常的最初想法

现在,首先我假设SimsBridge对象没有被初始化,但是我已经在代码中找到了发生这种情况的地方(将user/pass作为参数)。此时我已成功登录,服务器上的详细信息将返回并显示在我的表单上

(所有参数都不为空)

网络错误是我的另一个怀疑,因为我已经看到这个程序的exe安装程序包工作。所以它应该会起作用。 然而,事实上我可以登录违背这一点

我觉得有点不知所措,不知下一步该往哪里看,实际上这里没有一个人我可以问


Q:您下一步要做什么才能找到问题的原因?

如果没有一个参数是空的(所有那些
val\uuu
东西),并且
plug
实例
都不是空的,那么故障可能在
AddDocuments
方法内部。如果您无法控制此代码(例如,它是第三方),那么您所能做的就是确保正确使用代码。否则,您将无法向库的作者发布问题

你所知道的是,某处是空的。您的内容似乎都不是空的(除了潜在的
DatabaseName
),因此只保留您正在调用的方法的内部状态


对我来说,下一步是创建一个小应用程序,它只做您正在尝试做的事情(
AddDocuments
,在本例中),看看您是否可以让它工作,或者再次复制问题。如果你能让它工作起来,那么就需要代码检查原始内容,看看你是否在任何地方犯了一个轻微的逻辑错误。如果您可以复制它,请将其作为一个问题发布给代码作者,看看他们怎么说。

谢谢您的回答,我自己也倾向于此,但不想跳到它上面。@Amiciable没问题。如果你能得到一个可靠的答案,我会很惊讶。NullReferenceException是几乎所有开发人员存在的祸根,尤其是当它不在他们的代码中时:-P