在我看来,调用 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/