我正在使用 .NET 的System.DirectoryServices.AccountManagement
命名空间做一些 Active Directory 工作。我注意到Principal
implements IDisposable
,这会引起一些头痛,因为该名称空间中的所有内容都继承了Principal
。
例如,考虑以下代码来获取组中的所有用户:
PrincipalContext domain = new PrincipalContext(ContextType.Domain);
GroupPrincipal group = GroupPrincipal.FindByIdentity(domain, "MyGroup");
PrincipalSearchResult<Principal> users = group.GetMembers();
该片段中的每个类型都实现IDisposable
了 ,包括搜索返回的所有用户和搜索结果集本身。
处理domain
andgroup
对象并不是什么大问题(使用块很容易using()
),但是我该怎么处理每个结果呢?我真的必须遍历该users
集合并处理每一个吗?