从WebAPI将BSON转换为客户端中的对象

时间:2017-10-26 15:39:14

标签: c# json asp.net-web-api bson

我有一个Web API,当前正从POST返回BSON响应。

通常我有WebAPI返回JSON,我只是在客户端执行此操作,将其反序列化为我的C#对象或对象。

var result = await GetApiClient().PostAsJsonAsync("api/Test/GetImages", args);

if (result.IsSuccessStatusCode)
     return await result.Content.ReadAsAsync<T>();

我现在正在这样做以获得BSON响应:

MediaTypeFormatter bsonFormatter = new BsonMediaTypeFormatter();
var result = await GetApiClient().PostAsync("api/Test/GetImages", args, bsonFormatter);

    if (result.IsSuccessStatusCode)
         return await result.Content.ReadAsAsync<T>();

JSON工作正常,但在阅读内容时出现BSON错误:

No MediaTypeFormatter is available to read an object of type IEnumerable1 from content with media type 'application/bson'

我100%肯定我回到了BSON,我只是不确定如何将其反序列化为对象?

1 个答案:

答案 0 :(得分:2)

我刚想出来了,我需要在ReadAsAsync调用中包含格式化程序。比我预想的要简单得多

ReadAsAsync<T>(new List<MediaTypeFormatter>() {bsonFormatter})