0

MSDN エントリPrincipalSearcher.FindByIdentitiy()、Gary Caldwell は (コミュニティ コンテンツの下部にある) このメソッドを使用するとメモリ リークが発生するDirectorySearcherと述べてSearchResultsCollectionSearchResultsCollectionます。このリークにより、またはを回避策としてDispose()使用するときに明示的に呼び出す必要があるようです。PrincipalSearcher.FindAll()PrincipalSearcher.FindOne()

このエントリは .NET 3.5 用に作成されましたが、.NET 4.0 以降の問題については記載されていません。この問題が修正されたかどうか、誰でも確認できますか?

4

1 に答える 1

0

Reflectorをざっと見てみると、修正されていることがわかります System.DirectoryServices.AccountManagement.ADStoreCtx FindPrincipalByIdentRefHelper::

DirectorySearcher searcher = new DirectorySearcher(this.ctxBase);
SearchResultCollection results = null;
try
{
   ...
}
catch (COMException exception)
{
    throw ExceptionHelper.GetExceptionFromCOMException(exception);
}
finally
{
    searcher.Dispose();
    if (results != null)
    {
        results.Dispose();
    }
}
于 2012-11-27T21:16:14.047 に答える