我有一些奇怪的错误。
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();
当我搜索一些用户时,我会收集它们,然后在foreach中使用它们。 例如:我输入用户并获得5个用户的集合,之后我填充我的数组。
但有时候我会收到用户的集合,在这里给我错误:
例如我输入测试,我知道我有用户"测试"并且我看到我的集合具有正确的计数,但是在结果之后.GetDirectoryEntry()我得到异常对象引用未设置为对象的实例。
我在网站上找不到类似内容。
注意: Collection具有正常的对象计数,而SearchResult不为null,它具有正常的Path! 谢谢!
答案 0 :(得分:1)
这是我的评论,回答:
检查Properties
吸气剂的结果;可能其中一个返回null,这就是你的NullReferenceException
来自的地方(当你试图得到一个null属性的Value
时)。
编辑:无法删除答案,但根据评论中的@baldpate,PropertyCollection.Item[string]
永远不会返回null,因此以上内容不是{{1 }}。无论如何,找到异常来源的策略是: