В .NET SDK 1.9.5 вы можете получить доступ к ResourceResponse.ResponseStream:
[HttpGet]
public async Task<HttpResponseMessage> GetDocumentById(string id)
{
var documentUri = UriFactory.CreateDocumentUri(database.Id, collection.Id, id);
var resourceResponse = await _client.ReadDocumentAsync(documentUri);
resourceResponse.ResponseStream.Position = 0;
using (StreamReader reader = new StreamReader(resourceResponse.ResponseStream, Encoding.UTF8))
{
var response = Request.CreateResponse(HttpStatusCode.OK);
response.Content = new StringContent(reader.ReadToEnd(), Encoding.UTF8, "application/json");
return response;
}
}
К сожалению, класс FeedResponse не предлагает схожую функциональность еще. Существует запрос UserVoice here, но официального ответа пока нет.
Редактировать: в моих тестах я вижу примерно 20..50 мс более быстрый результат для стандартного класса класса «Человек» с ResponseStream по сравнению с сериализацией десериализации.
Благодарим за быстрый ответ. Json to Deserialized object обратно в json (для клиента), кажется, лишняя работа (особенно, когда нам не нужна десериализация). Вы нашли способ решить это или это то, что Microsoft должна придумать решение? Спасибо, Сома. –
Нет, мы десериализуем объекты POCO. Мы встретились с командой DocDB еще в феврале и задали тот же вопрос, и в то время у них не было возможности. Думаю, я помню, что они могли бы работать над этой функцией для будущего выпуска. Платформа еще молода, и они постоянно выпускают новые функции. – cnaegle