В приведенном ниже коде оператор return генерирует исключение.
private IEnumerable<DirectoryEntry> GetDomains()
{
ICollection<string> domains = new List<string>();
// Querying the current Forest for the domains within.
foreach (Domain d in Forest.GetCurrentForest().Domains)
{
domains.Add(d.Name);
}
return domains; //doesn't work
}
Каким может быть возможное решение этой проблемы?
Переопределите свой метод как
private IEnumerable<string> GetDomains()
{
...
}
поскольку вам нужен список string
а не Domains
или DirectoryEntry
. (предполагается, что вы добавляете "d.Name")
Кроме того, было бы намного проще использовать LINQ:
IEnumerable<string> domains = Forest.GetCurrentForest().Domains.Select(x => x.Name);
Это вернет IEnumerable<string>
, и он не будет тратить лишнюю память на создание отдельного списка.
Задайте тип доменов в IList<string>
или выполните, как предлагает Натан:
private IEnumerable<string> GetDomains()
{
return Forest.GetCurrentForest().Domains.Select(x => x.Name);
}