Правильное распределение ресурсов при подключении к LDAP с использованием служб каталогов C # - PullRequest
4 голосов
/ 03 марта 2010

Мне кажется, что всегда нужно правильно распоряжаться ресурсами при вызове API Служб каталогов без исключения (однако многие примеры, блоги и учебные пособия часто игнорируют или делают один способ с этим вызовом, а другой - с другим вызовом). Поскольку все следующие классы DS реализуют метод Dispose, я хочу подтвердить это раз и навсегда:

using (DirectoryEntry dirEntry = new DirectoryEntry()) 
{
    using (DirectorySearcher dirSearcher = new DirectorySearcher())
    {
        dirSearcher.SearchRoot = dirEntry;
        dirSearcher.Filter = ...;
        using (SearchResultCollection src = dirSearcher.FindAll())
        {
            //Other code that deals with result
        } 
    }
}

всегда должно быть сделано. Сталкиваюсь ли я с каким-либо риском из-за того, что всегда систематически и религиозно выполняю все вышеперечисленное?

1 Ответ

9 голосов
/ 03 марта 2010

На самом деле очень важно избавиться от объектов Службы каталогов - многие из них обертывают ресурсы COM +, и вы вызовете утечку ресурсов, если не удастся утилизировать.

Так что да, вы делаете правильные вещи, безусловно, и нет, нет риска, когда вы их заверните в using.

...