캐스팅 예외로 인해 쉽게 날카로운 실행 가 실패합니다.

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 VS라는 이유를 맵핑하는 이유가 있는지 또는 INT64 VS가 지정한 이유를 얻지 못합니다. :

API를 직접 칠 때 이것이 내가 돌아 오는 것입니다

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

나는 그것이 내가 쉴 수있는 것에 대해 이해하지 못하는 것이 없다고 느낍니다.INSUTE 메서드에 int, IT 수신 및 int를 예상하지만 컬렉션에 매핑하려고합니다.왜 컬렉션은 어디에서 왔는가?

기본 응답 객체의 콘텐츠를 볼 때 "17"이 적절한 결과가 있음을 알아 차렸다. 왜 샤프를 발견 할 수 없습니까?그리고 여전히 컬렉션을 찾는 것이 어디에 있습니까?

도움이 되었습니까?

해결책

응답 객체를 볼 때 반환 값이 데이터의 콘텐츠 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