Я обнаружил утечку в коде перечисления моей группы.Я написал тестовую программу, и я пытаюсь избавиться от всего, но все же она протекает.
Кто-нибудь видит, что я делаю не так?В моем тесте я вызываю его 100 раз подряд, а в моем небольшом домене объем памяти увеличивается с 32 до более 150 МБ.
private void EnumGroups()
{
try
{
using (PrincipalContext context = new PrincipalContext(ContextType.Domain, "domainname.com"))
{
using (PrincipalSearcher srch = new PrincipalSearcher())
{
srch.QueryFilter = new UserPrincipal(context);
// do the search
using (PrincipalSearchResult<Principal> results = srch.FindAll())
{
// enumerate over results
foreach (UserPrincipal up in results)
{
using (PrincipalSearchResult<Principal> groups = up.GetGroups())
{
foreach (GroupPrincipal gp in groups)
gp.Dispose();
}
up.Dispose();
}
}
}
}
}
catch (Exception exc)
{
Trace.WriteLine(exc);
}
}