Переопределить 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...
}