为什么我从 GetDirectoryEntry() 得到 "Object reference not set to an instance of an object"?
Why am I getting "Object reference not set to an instance of an object" from GetDirectoryEntry()?
我有一些奇怪的错误。
DirectoryEntry directoryEntry = new DirectoryEntry("LDAP://11.111.111.11", "user", "1");
DirectorySearcher searcher = new DirectorySearcher(directoryEntry)
{
PageSize = int.MaxValue,
Filter = "(&(objectClass=user)(sAMAccountName=" + txt + "*))"
};
SearchResultCollection resultCollection = searcher.FindAll();
foreach (SearchResult result in resultCollection)
{
if (result != null)
{
users.Add(new ObjectTest(
result.GetDirectoryEntry().Properties["samaccountname"].Value as string,
result.GetDirectoryEntry().Properties["givenName"].Value as string,
result.GetDirectoryEntry().Properties["sn"].Value as string,
result.GetDirectoryEntry().Properties["mail"].Value as string));
}
}
directoryEntry.Close();
当我搜索一些用户时,我得到了 collection 个,然后在 foreach 中使用它们。
例如:我输入 user 并得到 collection 和 5 个用户,之后我填充我的数组。
但有时 collection 用户会在此处给我错误:
例如,我输入测试,我知道我有用户 "test",我看到我的 collection 有正确的计数,但在 result.GetDirectoryEntry() 之后我得到异常 Object 引用未设置为 object.
的实例
我在网站上找不到任何类似的东西。
注意:
Collection 有 object 的正常计数,并且 SearchResult 不为 null 它有正常的路径!
谢谢!
这是我的评论,已回答:
检查 Properties
getter 的结果;大概其中之一是 returning null,这就是您的 NullReferenceException
的来源(当您尝试获取 null 属性 的 Value
)时)。
编辑: 无法删除答案,但根据评论中的@baldpate,PropertyCollection.Item[string]
永远不会 return null,所以上面不是 NullReferenceException
的解释。无论如何,寻找异常来源的策略是:
- 将每个方法调用单独一行,并将结果存储在一个变量中。
- 逐行逐行执行代码,测试输出,直到找到空值。
我有一些奇怪的错误。
DirectoryEntry directoryEntry = new DirectoryEntry("LDAP://11.111.111.11", "user", "1");
DirectorySearcher searcher = new DirectorySearcher(directoryEntry)
{
PageSize = int.MaxValue,
Filter = "(&(objectClass=user)(sAMAccountName=" + txt + "*))"
};
SearchResultCollection resultCollection = searcher.FindAll();
foreach (SearchResult result in resultCollection)
{
if (result != null)
{
users.Add(new ObjectTest(
result.GetDirectoryEntry().Properties["samaccountname"].Value as string,
result.GetDirectoryEntry().Properties["givenName"].Value as string,
result.GetDirectoryEntry().Properties["sn"].Value as string,
result.GetDirectoryEntry().Properties["mail"].Value as string));
}
}
directoryEntry.Close();
当我搜索一些用户时,我得到了 collection 个,然后在 foreach 中使用它们。 例如:我输入 user 并得到 collection 和 5 个用户,之后我填充我的数组。
但有时 collection 用户会在此处给我错误:
例如,我输入测试,我知道我有用户 "test",我看到我的 collection 有正确的计数,但在 result.GetDirectoryEntry() 之后我得到异常 Object 引用未设置为 object.
的实例我在网站上找不到任何类似的东西。
注意: Collection 有 object 的正常计数,并且 SearchResult 不为 null 它有正常的路径! 谢谢!
这是我的评论,已回答:
检查 Properties
getter 的结果;大概其中之一是 returning null,这就是您的 NullReferenceException
的来源(当您尝试获取 null 属性 的 Value
)时)。
编辑: 无法删除答案,但根据评论中的@baldpate,PropertyCollection.Item[string]
永远不会 return null,所以上面不是 NullReferenceException
的解释。无论如何,寻找异常来源的策略是:
- 将每个方法调用单独一行,并将结果存储在一个变量中。
- 逐行逐行执行代码,测试输出,直到找到空值。