Override groupprincipal.members.add
本文关键字:add members groupprincipal Override | 更新日期: 2023-09-27 17:50:44
有人知道是否可以覆盖或扩展成员。在System.DirectoryServices.AccountManagement.GroupPrincipal
对象上添加方法?
我想做这样的事情
public new void Add(Principal principal)
{
base.Add(principal);
LogFile.WriteLine("Added {0} to group", principal.Name);
}
这很棘手,因为您不是试图覆盖GroupPrincipal
上的方法,而是覆盖GroupPrincipal
内部的子对象,即代表成员的PrincipalCollection
对象。
你想要做的唯一方法是把Add方法作为一个普通的方法放在子对象上,就像:
public class EnhancedGroupPrincipal : Group Principal {
public void Add(Principal principal) {
//your code to add and log
}
}
虽然您必须知道如何使用备用Add
方法,但您应该知道,因此它将是OK的。
我能想到的最简单的方法是使用扩展方法
public static void Add(this GroupPrincipal group, Principal child)
{
group.Members.Add(child);
LogFile.WriteLine("Added {0} to group", child.Name);
//Do whatever else you have to do...
}