2013-01-04 6 views
0

누구든지 System.DirectoryServices.AccountManagement.GroupPrincipal 개체에서 Members.Add 메서드를 재정의하거나 확장 할 수 있는지 알고 있습니다?groupprincipal.members.add 덮어 쓰기

내가 좋아하는 뭔가를하고 싶은이

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

답변

0

이것은 당신이 GroupPrincipal에 메소드를 오버라이드 (override)하는 것을 시도하지 않는 한, 까다로운이지만, GroupPrincipal의 내부에 자식 개체, 즉 PrincipalCollection 객체에 그 회원을 대표합니다.

가지 당신이 원하는 것을 할 수있는 유일한 방법은 당신의 자식 개체에 그냥 평범한 방법으로 추가 방법을 넣어하는 것입니다, 뭔가 같은 :

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

당신은 대체를 사용하여 알고 있어야하지만 Add 방법을 사용하면 아마도 알 수 있으므로 괜찮습니다. 내가 알아낼 수

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... 
} 
을 사용하고 있습니다