Я пытаюсь поговорить с службой REST, и я пытаюсь вызвать метод POST
, где мне нужно предоставить некоторые данные в теле сообщения.RestSharp - как влиять на сериализацию JSON (именование)?
У меня есть класс модели все хорошо настроить что-то вроде этого:
public class MyRequestClass
{
public string ResellerId { get; set; }
public string TransactionId { get; set; }
... other properties of no interest here ...
}
и я использую RestSharp в C# вызвать мой REST сервис что-то вроде этого:
RestClient _client = new RestClient(someUrl);
var restRequest = new RestRequest("/post-endpoint", Method.POST);
restRequest.RequestFormat = DataFormat.Json;
restRequest.AddHeader("Content-Type", "application/json");
restRequest.AddJsonBody(request); // of type "MyRequestClass"
IRestResponse<MyResponse> response = _client.Execute<MyResponse>(restRequest);
Все казалось работать нормально - никаких исключений не бросают. Но служба отвечает:
Мы испытываем проблемы в процессе обработки вашего запроса
Когда я смотрел на запросе JSON, который, посылаемый, я вижу, что все свойства в Капитализированных орфографиях:
{ "ResellerId":"123","TransactionId":"456" }
и это вызывает вопрос - услуга excepts их в нижнем регистре:
{ "resellerId":"123","transactionId":"456" }
Так что я пытался украсить мой C# класс модели с атрибутами:
public class MyRequestClass
{
[RestSharp.Serializers.SerializeAs(Name = "resellerId")]
public string ResellerId { get; set; }
[RestSharp.Serializers.SerializeAs(Name = "transactionId")]
public string TransactionId { get; set; }
... other properties of no interest here ...
}
, но это, похоже, ничего не менять - запрос подоконник JSON имеет имена свойств в заглавной орфографии и, таким образом, вызов неудачен.
Как я могу сообщить RestSharp всегда использовать имена нижнего регистра в JSON, сгенерированном из класса модели C#?
@CodeCaster: да, похоже, имеет дело с одной и той же проблемой. Однако: если переместите свой ответ там, я не смогу его принять :-( –