Browse Source

Merge pull request #13248 from abpframework/AbpSystemTextJsonSerializerProvider-5.3

Set JsonSerializerOptionsCache  static.
pull/13249/head
liangshiwei 4 years ago
committed by GitHub
parent
commit
05e7796bda
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 9
      framework/src/Volo.Abp.Json/Volo/Abp/Json/SystemTextJson/AbpSystemTextJsonSerializerProvider.cs

9
framework/src/Volo.Abp.Json/Volo/Abp/Json/SystemTextJson/AbpSystemTextJsonSerializerProvider.cs

@ -40,11 +40,16 @@ public class AbpSystemTextJsonSerializerProvider : IJsonSerializerProvider, ITra
return JsonSerializer.Deserialize(jsonString, type, CreateJsonSerializerOptions(camelCase));
}
private readonly ConcurrentDictionary<string, JsonSerializerOptions> JsonSerializerOptionsCache = new ConcurrentDictionary<string, JsonSerializerOptions>();
private readonly static ConcurrentDictionary<object, JsonSerializerOptions> JsonSerializerOptionsCache = new ConcurrentDictionary<object, JsonSerializerOptions>();
protected virtual JsonSerializerOptions CreateJsonSerializerOptions(bool camelCase = true, bool indented = false)
{
return JsonSerializerOptionsCache.GetOrAdd($"default{camelCase}{indented}", _ =>
return JsonSerializerOptionsCache.GetOrAdd(new
{
camelCase,
indented,
Options.JsonSerializerOptions
}, _ =>
{
var settings = new JsonSerializerOptions(Options.JsonSerializerOptions);

Loading…
Cancel
Save