فشل Rest Sharp Execute<Int> بسبب استثناء الإرسال

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.IDictionary`2[System.String,System.Object]'.

عندما ضربت واجهة برمجة التطبيقات مباشرة، هذا ما أعود إليه

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

أشعر أن هذا شيء لا أفهمه بشأن Rest Sharp.أقول لطريقة التنفيذ أن تتوقع Int، وتستقبل وint، لكنها تحاول تعيينها إلى مجموعة.لماذا وأين تأتي المجموعة؟

لقد لاحظت أنه عندما أنظر إلى محتوى كائن الاستجابة الأساسي، تظهر النتيجة المناسبة "17"، فلماذا لا تتمكن Rest Sharp من العثور عليها؟وما زال أين يجد المجموعة؟

هل كانت مفيدة؟

المحلول

عند النظر إلى كائن الاستجابة وجدت أن قيمة الإرجاع كانت في المحتوى مقابل البيانات.لقد وجدت أن هذا صحيح عندما لا أقوم بإرجاع كائن أو قائمة كائنات.

والآن عندما أتوقع 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