任何人都知道是否可以覆盖或扩展System.DirectoryServices.AccountManagement.GroupPrincipal
对象上的 Members.Add 方法?
我想做这样的事情
public new void Add(Principal principal)
{
base.Add(principal);
LogFile.WriteLine("Added {0} to group", principal.Name);
}
任何人都知道是否可以覆盖或扩展System.DirectoryServices.AccountManagement.GroupPrincipal
对象上的 Members.Add 方法?
我想做这样的事情
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
方法,但大概您会知道,所以没关系。
我能想到的最简单的方法是使用扩展方法
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...
}