表示権限のあるすべてのドキュメントを表示する再帰的な方法に取り組んでいます。最初のパスはうまく機能しますが、現在のドキュメントの子のドキュメント配列を再帰的に渡して自分自身を呼び出すと、エラーがスローされます。
オブジェクト参照がオブジェクト インスタンスに設定されていません。説明: 現在の 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
}
}
}
}