2015-02-06 1 views
3

Я пытаюсь поговорить с службой 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#?

+0

@CodeCaster: да, похоже, имеет дело с одной и той же проблемой. Однако: если переместите свой ответ там, я не смогу его принять :-( –

ответ

 Смежные вопросы

  • Нет связанных вопросов^_^