Отдых Sharp Execute не удается из-за исключения

StackOverflow https://stackoverflow.com//questions/12678834

  •  12-12-2019
  •  | 
  •  

Вопрос

У меня есть это:

public Int32 NumberOfLocationsForCompany(int companyId)
{
        var response = _curl.ResetRequest()
            .WithPath(LOCATION_URL)
            .AddParam("companyId", companyId.ToString())
            .RequestAsGet()
            .ProcessRequest<Int32>();

        return response;
}
.

Это вызывает это в конце.

    public T ProcessRequest<T>() where T : new()
    {
        var response = _client.Execute<T>(_request);

        if (response.ErrorException != null)
        {
            throw response.ErrorException;
        }
        return response.Data;
    }
.

Но я получаю эту ошибку.Я не понимаю, почему он пытается сопоставить INT в коллекции или почему INT64 против 32 я указывалось. Невозможно изменить объект типа «System.int64» для типа «System». Collections.Generic.`2 [System.String, System.Object] '.

Когда я ударю API напрямую, это то, что я возвращаю

<int xmlns="http://schemas.microsoft.com/2003/10/Serialization/">17</int>
.

Я чувствую, что это то, что я не понимаю о спокойном состоянии.Я расскажу о методе Execute ожидать int, он получает и int, но пытается сопоставить его в коллекцию.Почему и где происходит коллекция?

Я заметил, что когда я смотрю в содержание объекта базового ответа, присутствует соответствующий результат «17», почему не может отдохнуть Sharp найти его?И еще где он нахожу коллекцию?

Это было полезно?

Решение

При взгляде на объект ответа я обнаружил, что возвращаемое значение было в контент VS в данных.Я нашел это, чтобы быть правдой, когда я не возвращал объект или список объектов.

Так что теперь, когда я ожидаю int, String, Bool и т. Д. Я использую следующее и отливьте тип возвращаемого значения:

    public string ProcessRequestWithValue()
    {
        var response = _client.Execute(_request);

        if (response.ErrorException != null)
        {
            throw response.ErrorException;
        }

        return response.Content;
    }
.

Надеюсь, это поможет!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top