private static void ApplySerializerSettings()

in src/Elastic.Apm/Libraries/Newtonsoft.Json/JsonSerializer.cs [598:649]


		private static void ApplySerializerSettings(JsonSerializer serializer, JsonSerializerSettings settings)
		{
			if (!CollectionUtils.IsNullOrEmpty(settings.Converters))
			{
				// insert settings converters at the beginning so they take precedence
				// if user wants to remove one of the default converters they will have to do it manually
				for (var i = 0; i < settings.Converters.Count; i++) serializer.Converters.Insert(i, settings.Converters[i]);
			}

			// serializer specific
			if (settings._typeNameHandling != null) serializer.TypeNameHandling = settings.TypeNameHandling;
			if (settings._metadataPropertyHandling != null) serializer.MetadataPropertyHandling = settings.MetadataPropertyHandling;
			if (settings._typeNameAssemblyFormatHandling != null) serializer.TypeNameAssemblyFormatHandling = settings.TypeNameAssemblyFormatHandling;
			if (settings._preserveReferencesHandling != null) serializer.PreserveReferencesHandling = settings.PreserveReferencesHandling;
			if (settings._referenceLoopHandling != null) serializer.ReferenceLoopHandling = settings.ReferenceLoopHandling;
			if (settings._missingMemberHandling != null) serializer.MissingMemberHandling = settings.MissingMemberHandling;
			if (settings._objectCreationHandling != null) serializer.ObjectCreationHandling = settings.ObjectCreationHandling;
			if (settings._nullValueHandling != null) serializer.NullValueHandling = settings.NullValueHandling;
			if (settings._defaultValueHandling != null) serializer.DefaultValueHandling = settings.DefaultValueHandling;
			if (settings._constructorHandling != null) serializer.ConstructorHandling = settings.ConstructorHandling;
			if (settings._context != null) serializer.Context = settings.Context;
			if (settings._checkAdditionalContent != null) serializer._checkAdditionalContent = settings._checkAdditionalContent;

			if (settings.Error != null) serializer.Error += settings.Error;

			if (settings.ContractResolver != null) serializer.ContractResolver = settings.ContractResolver;
			if (settings.ReferenceResolverProvider != null) serializer.ReferenceResolver = settings.ReferenceResolverProvider();
			if (settings.TraceWriter != null) serializer.TraceWriter = settings.TraceWriter;
			if (settings.EqualityComparer != null) serializer.EqualityComparer = settings.EqualityComparer;
			if (settings.SerializationBinder != null) serializer.SerializationBinder = settings.SerializationBinder;

			// reader/writer specific
			// unset values won't override reader/writer set values
			if (settings._formatting != null) serializer._formatting = settings._formatting;
			if (settings._dateFormatHandling != null) serializer._dateFormatHandling = settings._dateFormatHandling;
			if (settings._dateTimeZoneHandling != null) serializer._dateTimeZoneHandling = settings._dateTimeZoneHandling;
			if (settings._dateParseHandling != null) serializer._dateParseHandling = settings._dateParseHandling;
			if (settings._dateFormatStringSet)
			{
				serializer._dateFormatString = settings._dateFormatString;
				serializer._dateFormatStringSet = settings._dateFormatStringSet;
			}
			if (settings._floatFormatHandling != null) serializer._floatFormatHandling = settings._floatFormatHandling;
			if (settings._floatParseHandling != null) serializer._floatParseHandling = settings._floatParseHandling;
			if (settings._stringEscapeHandling != null) serializer._stringEscapeHandling = settings._stringEscapeHandling;
			if (settings._culture != null) serializer._culture = settings._culture;
			if (settings._maxDepthSet)
			{
				serializer._maxDepth = settings._maxDepth;
				serializer._maxDepthSet = settings._maxDepthSet;
			}
		}