0

System.DirectoryServices.AccountManagement.GroupPrincipalオブジェクトの Member.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 に答える