我正在使用此代码获取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类。
调试时,我可以看到具有DisplayName属性的“ g”对象具有Test.AD.GroupPrincipalExtension(我不知道该如何称呼它?下划线对象?一个属性?不确定...)。
由于我无法获取
g.DisplayName
,因此我该如何关注,g.Test.AD.GroupPrincipalExtension.DisplayName
最佳答案
没有路径g.Test.AD.GroupPrincipalExtension.DisplayName
。 Visual Studio只是向您显示g
是Test.AD.GroupPrincipalExtension
类型的(因为g
是Principal
类型的)。
由于将gpe
用作PrincipalSearcher
的筛选器,因此看到的类型为GroupPrincipalExtension
。 (您的GroupPrincipalExtension
继承了Principal
,这是PrincipalSearchResult<Principal>
枚举的类型,就像在foreach
中一样)。
您必须在其他地方找到问题,也许在您的GroupPrincipalExtension
中。可以调用Principal.DisplayName
。
关于c# - 如何获得下划线对象?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32710453/