Как динамическое приведение Microsoft.Azure.Documents приводит к десериализации? - PullRequest
0 голосов
/ 18 сентября 2019

Моей команде был предоставлен пример файла, который демонстрирует, как взаимодействовать с CosmosDB в C # и преобразовывать полученные экземпляры Microsoft.Azure.Document в POCO.Документы преобразуются следующим образом: (эллипсы указывают на упущенную логику для краткости)

public Task<T> GetItemAsync<T> (...)
{

    Document document = await client.ReadDocumentAsync(...);
    return (T)(dynamic)document;

}

Мне кажется, что (dynamic)document каким-то образом сериализует документ, который в противном случае необходимо было бы сделатьуказав каждое поле JSON индивидуально.Видя, как dynamic операции приведения не могут быть перегружены , я в недоумении относительно того, что вызывает эту десериализацию.

Что я пропускаю, что мешает мне понять эту операцию

1 Ответ

0 голосов
/ 20 сентября 2019

Если я правильно понял ваш вопрос.Цель должна заключаться в том, чтобы в конце получить элемент типа T, полученный из коллекции CosmosDB. Вы видели документацию?

public async Task<T> GetItemAsync<T> (...)
{
   var item = await client.ReadDocumentAsync<T>(...);
   return item;
}

... даст вам десериализованное содержимое типа T.

...