使用C#目录服务连接到LDAP时正确处理资源

时间:2010-03-03 00:22:02

标签: c# ldap directoryservices

在我看来,在调用目录服务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 个答案:

答案 0 :(得分:9)

配置目录服务对象实际上非常重要 - 其中许多包装COM +资源,如果您处理失败,导致资源泄漏。

所以是的,你做的是正确的,当然,不,当你将它们包裹在using中时没有风险。