【问题标题】:How to get underline object?如何获得下划线对象?
【发布时间】:2015-12-19 01:15:18
【问题描述】:

我正在使用此代码获得一个 ADGroup,

        using (var context = Utilities.GetPrincipalContext(OU))
        using (var gpe = new GroupPrincipalExtension(context, "*"))
        using (var ps = new PrincipalSearcher(gpe))
        {
            foreach (var g in ps.FindAll())
            {
                Console.WriteLine(g.DisplayName);
            }
        }

它给DisplayName null,因为该属性可用但在另一个对象下,这是我在调试时在LOCAL窗口中看到的,

编辑

我认为代码是自我解释的,但如果它引起混淆,我会尝试获取特定 OU 中的所有组,然后尝试获取自定义属性“DisplayName”,GroupPrincipalExtension 继承自 system.directoryservices.accountmanagement 的 GroupPrincipal 类。

调试时我可以看到“g”对象具有 Test.AD.GroupPrincipalExtension(我不知道该怎么称呼它?下划线对象?属性?不确定...),它具有 DisplayName 属性。

因为我无法获得g.DisplayName,我如何获得关注,

g.Test.AD.GroupPrincipalExtension.DisplayName

【问题讨论】:

标签: c# active-directory


【解决方案1】:

没有路径g.Test.AD.GroupPrincipalExtension.DisplayName。 Visual Studio 只显示g 的类型为Test.AD.GroupPrincipalExtension(因为g 的类型为Principal)。

由于您使用gpe 作为PrincipalSearcher 的过滤器,因此您看到的类型是GroupPrincipalExtension。 (您的GroupPrincipalExtension 继承Principal,这是PrincipalSearchResult<Principal> 枚举的类型,就像您在foreach 中所做的那样。

您必须在其他地方找到问题所在,也许在您的GroupPrincipalExtension 中。拨打Principal.DisplayName 没问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-12
    • 1970-01-01
    • 2018-03-22
    • 2014-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-03
    相关资源
    最近更新 更多