From f95a0797881959eb275595b366e7aaa6c6adc302 Mon Sep 17 00:00:00 2001 From: RogueException Date: Thu, 7 Jan 2016 19:35:03 -0400 Subject: [PATCH] Was more explicit about deserialization options, fixed some test_responses code --- src/Discord.Net/DiscordClient.cs | 4 +++- src/Discord.Net/Net/Rest/RestClient.cs | 21 +++++++++++---------- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/src/Discord.Net/DiscordClient.cs b/src/Discord.Net/DiscordClient.cs index faae7a319..d08784ab0 100644 --- a/src/Discord.Net/DiscordClient.cs +++ b/src/Discord.Net/DiscordClient.cs @@ -107,12 +107,14 @@ namespace Discord _serializer.CheckAdditionalContent = true; _serializer.MissingMemberHandling = MissingMemberHandling.Error; #else + _serializer.CheckAdditionalContent = false; + _serializer.MissingMemberHandling = MissingMemberHandling.Ignore; +#endif _serializer.Error += (s, e) => { e.ErrorContext.Handled = true; Logger.Error("Serialization Failed", e.ErrorContext.Error); }; -#endif //Networking ClientAPI = new RestClient(Config, DiscordConfig.ClientAPIUrl, Log.CreateLogger("ClientAPI")); diff --git a/src/Discord.Net/Net/Rest/RestClient.cs b/src/Discord.Net/Net/Rest/RestClient.cs index a5cac77ac..0293efb50 100644 --- a/src/Discord.Net/Net/Rest/RestClient.cs +++ b/src/Discord.Net/Net/Rest/RestClient.cs @@ -13,6 +13,7 @@ namespace Discord.Net.Rest private readonly DiscordConfig _config; private readonly IRestEngine _engine; private string _token; + private JsonSerializerSettings _deserializeSettings; internal Logger Logger { get; } @@ -38,6 +39,15 @@ namespace Discord.Net.Rest #else _engine = new BuiltInEngine(config, baseUrl, logger); #endif + + _deserializeSettings = new JsonSerializerSettings(); +#if TEST_RESPONSES + _deserializeSettings.CheckAdditionalContent = true; + _deserializeSettings.MissingMemberHandling = MissingMemberHandling.Error; +#else + _deserializeSettings.CheckAdditionalContent = false; + _deserializeSettings.MissingMemberHandling = MissingMemberHandling.Ignore; +#endif } public async Task Send(IRestRequest request) @@ -135,22 +145,13 @@ namespace Discord.Net.Rest return responseJson; } - private JsonSerializerSettings _deserializeSettings = new JsonSerializerSettings(); private T DeserializeResponse(string json) { #if TEST_RESPONSES - if (_deserializeSettings == null) - { - _deserializeSettings = new JsonSerializerSettings(); - _deserializeSettings.CheckAdditionalContent = true; - _deserializeSettings.MissingMemberHandling = MissingMemberHandling.Error; - } if (string.IsNullOrEmpty(json)) throw new Exception("API check failed: Response is empty."); - return JsonConvert.DeserializeObject(json, _deserializeSettings); -#else - return JsonConvert.DeserializeObject(json); #endif + return JsonConvert.DeserializeObject(json, _deserializeSettings); } } }