Это, вероятно, ваша проблема прямо здесь:
mySearcher.PropertiesToLoad.Add("" + objectName + "");
Параметр objectName
- это Dictionary<string, object>
, но вы используете его как строку. Когда вы сделаете это, .NET вызывает метод .ToString()
для объекта, который в итоге окажется чем-то, что вам не нужно, например «System.Collections.Generic.Dictionary`2 [System.String, System.Object]» .
Вероятно, это мешает вашему поиску.
Но вы все равно не читаете свойства результатов поиска. Вы просто звоните .GetDirectoryEntry()
на каждый результат. Так что вам даже не нужно устанавливать PropertiesToLoad
. Так что просто возьми эту строку.
Если вы хотите прочитать каждое свойство из результатов поиска, вам нужно добавить каждое свойство по отдельности, поэтому вам нужно будет выполнить цикл по Dictionary
и добавить каждое Key
к PropertiesToLoad
:
foreach (var prop in objectName) {
mySearcher.PropertiesToLoad.Add(prop.Key);
}