Я работаю над рекурсивным методом, который отображает все документы, на которые у меня есть разрешения.Первый проход работает отлично, но когда он вызывает себя рекурсивно, передавая массив документа дочерних элементов текущего документа, он выдает ошибку:
Ссылка на объект не установлена на экземпляр объекта.Описание: во время выполнения текущего веб-запроса произошло необработанное исключение.Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.
Сведения об исключении: 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
}
}
}
}