首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >覆盖groupprincipal.members.add

覆盖groupprincipal.members.add
EN

Stack Overflow用户
提问于 2013-01-04 17:28:19
回答 2查看 275关注 0票数 0

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

我想做这样的事情

代码语言:javascript
复制
public new void Add(Principal principal)
{
    base.Add(principal);
    LogFile.WriteLine("Added {0} to group", principal.Name);   
}
EN

回答 2

Stack Overflow用户

发布于 2013-01-14 05:44:57

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

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

代码语言:javascript
复制
public class EnhancedGroupPrincipal : Group Principal {    
    public void Add(Principal principal) {
        //your code to add and log
    }    
}

虽然您必须知道如何使用替代的Add方法,但您可能已经知道了,所以这是可以的。

票数 0
EN

Stack Overflow用户

发布于 2015-10-06 00:38:19

我能找出的最简单的方法是使用扩展方法

代码语言:javascript
复制
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...
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14154406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档