0

任何人都知道是否可以覆盖或扩展System.DirectoryServices.AccountManagement.GroupPrincipal对象上的 Members.Add 方法?

我想做这样的事情

public new void Add(Principal principal)
{
    base.Add(principal);
    LogFile.WriteLine("Added {0} to group", principal.Name);   
}
4

2 回答 2

0

这很棘手,因为您不是试图覆盖 上的方法GroupPrincipal,而是覆盖 内部的子对象GroupPrincipal,即PrincipalCollection代表成员的对象。

做你想做的事情的唯一方法是将 Add 方法作为一个普通方法放在你的子对象上,比如:

public class EnhancedGroupPrincipal : Group Principal {    
    public void Add(Principal principal) {
        //your code to add and log
    }    
}

虽然您必须知道使用替代Add方法,但大概您会知道,所以没关系。

于 2013-01-13T21:44:56.680 回答
0

我能想到的最简单的方法是使用扩展方法

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...
}
于 2015-10-05T16:38:18.867 回答