Служба REST неправильно возвращает кортеж

У меня есть служба REST, из которой я хочу вернуть кортеж. Кортежи будут 2 списка. См. код ниже. Метод GetRecords возвращает кортеж, и когда я проверяю результирующую переменную, я вижу, что все, что мне нужно, есть и правильно.

    public HttpResponseMessage GetRecords([FromUri] List<int> ids)
    {
        try
        {
            Tuple<List<Class1>, List<Class2>> result = DataAccess.GetRecords(ids);

            return Request.CreateResponse(HttpStatusCode.OK, result);
        }
    }

Вот мой код вызова:

HttpResponseMessage response = await client.GetAsync(url);

Tuple<List<Class1>, List<Class2>> result = await response.Content.ReadAsAsync<Tuple<List<Class1>, List<Class2>>>();

Итак, все работает без ошибок, однако моя результирующая переменная в вызывающем коде пуста. Кто-нибудь знает, что я пропустил?

Если я изменю свой код, чтобы он возвращал список вместо кортежа, он сработает.

Помогите, пожалуйста.


person Sun    schedule 05.06.2015    source источник
comment
как выглядит JSON?   -  person Daniel A. White    schedule 05.06.2015


Ответы (1)


Согласно MSDN, я предполагаю, что вы не можете сериализовать Tuple, потому что он пропускает конструктор без параметров .

РЕДАКТИРОВАТЬ:

Возможный обходной путь можно найти здесь.

person kamil-mrzyglod    schedule 05.06.2015
comment
Спасибо. Обходной путь в ссылке отлично работает для меня. - person Sun; 05.06.2015