Переопределить groupprincipal.members.add

Любой знает, можно ли переопределить или расширить метод Members.Add в System.DirectoryServices.AccountManagement.GroupPrincipal объект?

Я хотел бы сделать что-то вроде этого

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

2 ответа

Это сложно, так как вы не пытаетесь переопределить метод на 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...
}
Другие вопросы по тегам