Return a shared contract resolver

Return a shared contract resolver from CreateSerializerSettings for performance
This commit is contained in:
James Newton-King 2017-06-06 17:52:18 +12:00 committed by GitHub
parent 628dfc39c1
commit 07e975a0ed
1 changed files with 9 additions and 5 deletions

View File

@ -13,6 +13,13 @@ namespace Microsoft.AspNetCore.Mvc.Formatters
{
private const int DefaultMaxDepth = 32;
// return shared resolver by default for perf so slow reflection logic is cached once
// developers can set their own resolver after the settings are returned if desired
private static readonly DefaultContractResolver SharedContractResolver = new DefaultContractResolver
{
NamingStrategy = new CamelCaseNamingStrategy(),
};
/// <summary>
/// Creates default <see cref="JsonSerializerSettings"/>.
/// </summary>
@ -21,10 +28,7 @@ namespace Microsoft.AspNetCore.Mvc.Formatters
{
return new JsonSerializerSettings
{
ContractResolver = new DefaultContractResolver
{
NamingStrategy = new CamelCaseNamingStrategy(),
},
ContractResolver = SharedContractResolver,
MissingMemberHandling = MissingMemberHandling.Ignore,
@ -38,4 +42,4 @@ namespace Microsoft.AspNetCore.Mvc.Formatters
};
}
}
}
}