public RestClient(string baseUrl, object appContext = null, CancellationToken?cancellationToken = null, JsonNameMapping nameMapping = JsonNameMapping.Default, Type badRequestContentType = null) : this(new RestClientSettings(baseUrl, new JsonContentSerializer(nameMapping), badRequestContentType : badRequestContentType), appContext : appContext) { }
public JsonContentSerializer(JsonNameMapping nameMapping = JsonNameMapping.Default, JsonSerializerSettings settings = null) { if (settings == null) { settings = new JsonSerializerSettings(); settings.Formatting = Formatting.Indented; settings.Converters.Add(new Newtonsoft.Json.Converters.StringEnumConverter()); //serialize enum as names, not numbers } SerializerSettings = settings; if (SerializerSettings.ContractResolver == null) { SerializerSettings.ContractResolver = new JsonNameContractResolver(nameMapping); //to process NodeAttribute attribute } JsonSerializer = JsonSerializer.Create(SerializerSettings); }
public JsonNameContractResolver(JsonNameMapping nameMapping) { NameMapping = nameMapping; switch (nameMapping) { case JsonNameMapping.Default: base.NamingStrategy = new DefaultNamingStrategy(); break; case JsonNameMapping.CamelCase: base.NamingStrategy = new CamelCaseNamingStrategy(); break; case JsonNameMapping.UnderscoreAllLower: base.NamingStrategy = new SnakeCaseNamingStrategy(); break; } }