Pregunta

Tengo esto:

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

        return response;
}

que llama esto al final.

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

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

pero recibo este error.No entiendo por qué está tratando de mapear un INT a una colección o por qué es Int64 vs el 32 I especificado.: no se puede colocar el objeto de tipo 'System.int64' para escribir 'System.Collections.genic.idectictyyy`2 [System.String, System.Object] '.

Cuando llegué a la API directamente, esto es lo que vuelvo

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

Siento que es algo que no estoy entiendo sobre el descanso afilado.Digo que el método de ejecución espere una int, recibe e int, pero está tratando de asignarlo a una colección.¿Por qué y de dónde viene la colección?

Me he dado cuenta de que cuando miro al contenido del objeto de respuesta de la base, el resultado apropiado "17" está presente, ¿por qué no se puede resistir a encontrarlo?y aún donde está encontrando la colección?

¿Fue útil?

Solución

Al mirar el objeto de respuesta, encontré que el valor de retorno estaba en contenido vs en datos.Encontré que esto era cierto cada vez que no estaba devolviendo un objeto o lista de objetos.

Así que ahora, cuando estoy esperando un INT, STRING, BOOL, etc. Utilizo lo siguiente y lleve el tipo del valor de retorno:

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

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

        return response.Content;
    }

espero que esto ayude!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top