我正在使用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
,我不知道如何从中获取任何东西。似乎没用:
这显示了我可以访问的字段。没有DisplayName
或其他任何内容。当我尝试调试它时,可以看到管理器的显示名称,但是无法以编程方式获取它:
答案 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软件包的原因。