Подделать .NET API RuntimeBinderException - PullRequest
0 голосов
/ 19 сентября 2018

Я использую Forge .NET API 1.3.0

Я пытаюсь получить концентраторы через API, как это описано в примере

Я знаю, что ...

  • Моя аутентификация работает
  • Результаты запроса верны для данных

Но по какой-то причине следующая строка завершается с RuntimeBinderException:

Hubs hubs = apiInstance.GetHubs(/*filterId, filterExtensionType*/);

В сообщении об исключении говорится:

Возникло исключение: «Microsoft.CSharp.RuntimeBinder.RuntimeBinderException» в неизвестном модуле.Дополнительная информация: Невозможно неявно преобразовать тип 'Autodesk.Forge.Model.DynamicJsonResponse' в 'Autodesk.Forge.Model.Hubs'

Таким образом, очевидно, что показанный в примере метод больше недействителен (?).Как следует преобразовывать полученные данные в тип Hubs.

Ответы [ 2 ]

0 голосов
/ 19 сентября 2018

ОК, мне удалось заставить его работать, используя необработанные данные.В следующем примере:

var hubs = await hubsApi.GetHubsAsync();
foreach (KeyValuePair<string, dynamic> hubInfo in new DynamicDictionaryItems(hubs.data))
{
  new { Id = hubInfo.Value.id, Name = hubInfo.Value.attributes.name }
}

Для справки, в массиве "hubs.data" содержатся данные следующего типа:

{
"type": "hubs",
"id": "b.aaaaaaaa-bbbb-cccc-1111-222223333333",
"attributes": {
    "name": "The hub",
    "extension": {
        "type": "hubs:autodesk.bim360:Account",
        "version": "1.0",
        "schema": {
            "href": "https://developer.api.autodesk.com/schema/v1/versions/hubs:autodesk.bim360:Account-1.0"
        },
        "data": {}
    }
},
"links": {
    "self": {
        "href": "https://developer.api.autodesk.com/project/v1/hubs/b.aaaaaaaa-bbbb-cccc-1111-222223333333"
    }
},
"relationships": {
    "projects": {
        "links": {
            "related": {
                "href": "https://developer.api.autodesk.com/project/v1/hubs/b.aaaaaaaa-bbbb-cccc-1111-222223333333/projects"
            }
        }
    }
}

}

0 голосов
/ 19 сентября 2018

В учебнике .NET показано, как составить список концентраторов. Вы также можете загрузить готовый к использованию образец , код DataManagementController - в действии, смотри здесь .

...