Der RestSharp-Client gibt alle Eigenschaften als Null zurück, wenn die JSON-Antwort deserialisiert wird

Ich versuche ein sehr einfaches Beispiel für die Verwendung der Execute-Methode von RestSharp zum Abfragen eines Rest-Endpunkts und zum Serialisieren an einen POCO. Alles, was ich versuche, führt jedoch zu einem response.Data-Objekt, das alle Eigenschaften mit einem NULL-Wert aufweist.

Hier ist die JSON-Antwort:

{
   "Result":
   {
       "Location":
       {
           "BusinessUnit": "BTA",
           "BusinessUnitName": "CASINO",
           "LocationId": "4070",
           "LocationCode": "ZBTA",
           "LocationName": "Name of Casino"
       }
   }
}

Hier ist mein Testcode

 [TestMethod]
    public void TestLocationsGetById()
    {
        //given
        var request = new RestRequest();
        request.Resource = serviceEndpoint + "/{singleItemTestId}";
        request.Method = Method.GET;
        request.AddHeader("accept", Configuration.JSONContentType);
        request.RootElement = "Location";
        request.AddParameter("singleItemTestId", singleItemTestId, ParameterType.UrlSegment);
        request.RequestFormat = DataFormat.Json;

        //when
        Location location = api.Execute<Location>(request);            

        //then
        Assert.IsNotNull(location.LocationId); //fails - all properties are returned null

    }

Und hier ist mein API-Code

 public T Execute<T>(RestRequest request) where T : new()
    {
        var client = new RestClient();
        client.BaseUrl = Configuration.ESBRestBaseURL;

        //request.OnBeforeDeserialization = resp => { resp.ContentLength = 761; };

        var response = client.Execute<T>(request);
        return response.Data;
    }

Und schließlich ist hier mein POCO

 public class Location
{        
    public string BusinessUnit { get; set; }
    public string BusinessUnitName { get; set; }
    public string LocationId { get; set; }
    public string LocationCode { get; set; }
    public string LocationName { get; set; }
}

Darüber hinaus sind die ErrorException- und die ErrorResponse-Eigenschaft für die Antwort NULL.

Dies scheint ein sehr einfacher Fall zu sein, aber ich bin den ganzen Tag im Kreis herumgelaufen! Vielen Dank.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage