“ DirectoryObject”不包含“ DisplayName”的定义

时间:2019-06-21 00:15:36

标签: c# azure-active-directory microsoft-graph-sdks

我正在使用Microsoft.Graph.Beta nuget package。我可以使用以下方法获取用户及其经理:

var me = await graphServiceClient.Me.Request().Expand("Manager").GetAsync();

但是,当我尝试获取用户经理的姓名时,出现错误:

var managerName = me.Manager.DisplayName;
  

'DirectoryObject'不包含'DisplayName'的定义,并且找不到可以接受的扩展方法'DisplayName'接受类型为'DirectoryObject'的第一个参数(您是否缺少using指令或程序集引用?)(CS1061 )

经理的类型为DirectoryObject,我不知道如何从中获取任何东西。似乎没用:

enter image description here

这显示了我可以访问的字段。没有DisplayName或其他任何内容。当我尝试调试它时,可以看到管理器的显示名称,但是无法以编程方式获取它:

enter image description here

1 个答案:

答案 0 :(得分:1)

尝试将您的代码更改为类似的内容。

string managerName = ((User)me.Manager).DisplayName;

另外,代替您所提到的使用Expand的另一种方法可能是

 var manager = await graphServiceClient.Me.Manager.Request().GetAsync();

,然后再访问显示名称。

 string managerName = ((User)manager).DisplayName;

此外,您提到您正在使用Microsoft.Graph.Beta nuget包。即使使用稳定版本(即Microsoft.Graph nuget包),至少与用户和管理员相关的功能也应该正常工作。可能是您出于其他原因使用Beta软件包的原因。