'DirectoryObject' 不包含 'DisplayName' 的定义

'DirectoryObject' does not contain a definition for 'DisplayName'

我正在使用 Microsoft.Graph.Beta nuget package。我能够使用以下方法获得用户和他们的经理:

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

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

var managerName = me.Manager.DisplayName;

'DirectoryObject' does not contain a definition for 'DisplayName' and no accessible extension method 'DisplayName' accepting a first argument of type 'DirectoryObject' could be found (are you missing a using directive or an assembly reference?) (CS1061)

管理器属于DirectoryObject类型,我不知道如何从中获取任何信息。好像没用:

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

尝试将您的代码更改为类似这样的内容..

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 包。可能您还有其他一些原因需要在您的案例中使用测试包。