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

标签 c# ldap directoryservices

在我看来,调用 Directory Services API 时应该始终正确地处理资源,无一异常(exception)(但许多示例、博客和教程经常忽略,或者对这个调用采取一种方式,对另一个调用采取另一种方式)。由于以下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
        } 
    }
}

应该总是做。我总是系统地、认真地做上述事情是否会遇到任何风险?

最佳答案

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

所以是的,您做的事情绝对是正确的,不,当您将它们包装在 using 中时没有风险。

关于c# - 使用 C# 目录服务连接到 LDAP 时正确处理资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2367964/

相关文章:

vb.net - "new DirectoryEntry(distinguishedName as string)"不是 't work when DN contains a "/"

c# - Windows Phone 8 map 控件 - 如何获取 map 边界

c# - 林奇 : The query results cannot be enumerated more than once

c# - 将使用 Linq 的代码转换为不使用 Linq 的代码

ldap - 通过 WSO2 Identity Server 从 LDAP 获取验证

ruby - 使用 devise 和 devise_ldap_authenticatable 在运行时检查组

ldap 过滤器来搜索一个属性的多个值

c# - Linq 和 ASP.NET MVC : Order data from latest to previous

c# - 提高 System.DirectoryServices.AccountManagement 的性能

c# - MVC3 应用程序中的多个 Active Directory 查找