【问题标题】:Cannot operate on variables of type directoryObject, MS Graph API result无法对 directoryObject 类型的变量进行操作,MS Graph API 结果
【发布时间】:2020-06-08 13:09:48
【问题描述】:

我正在使用以下代码通过 Graph API 获取管理器详细信息。

var directoryObject = await graphServiceClient.Users[user.UserPrincipalName].Manager.Request().GetAsync();

我正在尝试执行以下操作来访问这些值:

foreach(User user in directoryObject ){
    console.Writeline(user.DisplayName);
}

甚至以下都不行:

 console.Writeline(directoryObject.DisplayName);

但是,我无法遍历值。 我附上了directoryObject的调试监视数据截图。

请帮助我迭代 directoryObject 的值或通过执行类似 directoryObject.entityName 的操作打印 directoryObject 中的实体 即 directoryObject.DisplayName

【问题讨论】:

  • 您必须先将 directoryObject 转换为正确的类,然后才能访问属性
  • 但是,由于我是初学者,所以我无法理解要投射哪个课程。

标签: c# foreach azure-active-directory microsoft-graph-api ienumerator


【解决方案1】:

directoryObject 显然已经User 而不是IEnumerable<User>,否则foreach 才有意义。一个简单的类型转换应该可以工作:

((User)directoryObject).DisplayName

【讨论】:

  • 非常感谢。是的,它有效。我正在使用 foreach(User user in directoryObject ) 考虑它的 User 类型,但我现在可以打印 DisplayName 这足以现在继续。
  • @AllTech 您应该真正了解foreach集合(即对象集)进行操作,而您的directoryObject 变量是单个对象,而不是集合。您不能在需要集合的地方使用单个对象。
  • 是的,实际上我无法识别 directoryObject 是单个对象。
  • @AllTech 您在监视窗口中看到的是 actual 类型,因此在这种情况下这是一条非常有用的信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-14
  • 1970-01-01
  • 2020-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多