我正在研究一种递归方法,该方法显示我有权查看的所有文档。第一遍效果很好,但是当它以递归方式调用自身并传递当前文档的子文档数组时,会引发错误:
你调用的对象是空的。说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.NullReferenceException:对象引用未设置为对象的实例。
这是代码:
protected void Page_Load(object sender, EventArgs e)
{
lblTest.Text = "Data<br /><br />";
Document[] releaseDocs = Document.GetRootDocuments();
displayDocs(releaseDocs);
}
public void displayDocs(Document[] releaseDocs)
{
string docPermissions = null;
User currentUser = User.GetCurrent();
foreach (var doc in releaseDocs)
{
docPermissions = currentUser.GetPermissions(doc.Path);
if ((docPermissions.Contains("F")) && (docPermissions.Contains("U")))
{
lblTest.Text += "D/T: " + doc.CreateDateTime + "<br />\r\n";
lblTest.Text += "Level: " + doc.Level + "<br />\r\n";
lblTest.Text += "Text: " + doc.Text + "<br />\r\n";
lblTest.Text += "<hr />\r\n";
if (doc.HasChildren)
{
Document[] childDocs = Document.GetChildrenForTree(doc.Id);
displayDocs(childDocs); //error occurs here
}
}
}
}