'DirectoryObject' не содержит определения для 'DisplayName'

Я использую пакет Nuget Microsoft.Graph.Beta. Мне удалось получить пользователя и его менеджера, используя следующее:

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

Однако когда я пытаюсь узнать имя менеджера пользователя, я получаю сообщение об ошибке:

var managerName = me.Manager.DisplayName;

'DirectoryObject' не содержит определения для 'DisplayName', и не может быть найден доступный метод расширения 'DisplayName', принимающий первый аргумент типа 'DirectoryObject' (вам не хватает директивы using или ссылки на сборку?) (CS1061)

Менеджер относится к типу DirectoryObject, и я не знаю, как от него что-то получить. Вроде бесполезно:

введите здесь описание изображения

Это показывает поля, к которым я могу получить доступ. Нет ни DisplayName, ни чего. Когда я пытался отладить его, я вижу отображаемое имя менеджера, но не могу получить его программно:

введите здесь описание изображения


person AskYous    schedule 21.06.2019    source источник
comment
Когда я пытался отладить его, я вижу отображаемое имя менеджера, но не могу получить его программно Где вы это видите? Вы слишком увеличили свой снимок экрана, чтобы увидеть, что это за свойство.   -  person Rufus L    schedule 21.06.2019
comment
Я использовал отладчик VSCode. Я не знаю, помогает ли уменьшение масштаба (см. Слева): i.imgur.com/6lQQNgZ.png < / а>.   -  person AskYous    schedule 21.06.2019


Ответы (1)


Попробуйте изменить свой код на что-то вроде этого ..

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

Кроме того, другой способ вместо использования Expand, как вы упомянули в вопросе, может быть

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

а затем позже, чтобы получить доступ к отображаемому имени ..

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

Кроме того, вы упомянули, что используете пакет Nuget Microsoft.Graph.Beta. По крайней мере, функциональность, связанная с пользователем и менеджером, должна работать должным образом даже со стабильной версией, то есть с пакетом Microsoft.Graph nuget. Возможно, у вас есть другие причины использовать бета-пакет в вашем случае.

person Rohit Saigal    schedule 21.06.2019
comment
Бинго! Большое тебе спасибо. Помог кастинг! Я использую расширение, потому что не хочу делать 2 сети. Запросы. Спасибо! - person AskYous; 21.06.2019