Question

J'ai ceci:

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

        return response;
}

Cela appelle ceci à la fin.

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

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

Mais je reçois cette erreur.Je ne comprends pas pourquoi il tente de cartographier un INT vers une collection ou pourquoi il est int64 vs le 32 i spécifié.: Impossible de lancer l'objet de type 'System.int64' to Taper 'System.Collections.Generic.Dictionner`2 [system.string, system.Object] '.

Quand je frappe l'API directement c'est ce que je revenons

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

Je pense que c'est quelque chose que je ne comprends pas de repos.Je dis à la méthode d'exécution de s'attendre à un INT, il reçoit et int, mais essaie de la cartographier à une collection.Pourquoi et où vient la collection?

J'ai remarqué que lorsque je regarde dans le contenu de l'objet de la base de la base, le résultat approprié "17" est présent, pourquoi ne peut-il pas rester forte le trouver?Et toujours où trouve-t-il la collection?

Était-ce utile?

La solution

Lorsque vous regardez l'objet de réponse, j'ai trouvé que la valeur de retour était dans le contenu vs dans les données.J'ai trouvé que cela serait vrai chaque fois que je ne retourniez pas d'objet ni de liste d'objets.

Alors maintenant, lorsque je m'attends à un int, de chaîne, de bool, etc. J'utilise ce qui suit et jette le type de la valeur de retour:

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

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

        return response.Content;
    }

J'espère que cela vous aidera!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top