internal JsonSerializerSettings CreateSettings(SerializationFormatting formatting, JsonConverter piggyBackJsonConverter = null)
        {
            var piggyBackState = new JsonConverterPiggyBackState {
                ActualJsonConverter = piggyBackJsonConverter
            };
            var settings = new JsonSerializerSettings()
            {
                Formatting           = formatting == SerializationFormatting.Indented ? Formatting.Indented : Formatting.None,
                ContractResolver     = new ElasticContractResolver(this._settings),
                DefaultValueHandling = DefaultValueHandling.Include,
                NullValueHandling    = NullValueHandling.Ignore
            };

            _settings.ModifyJsonSerializerSettings?.Invoke(settings);

            var contract = settings.ContractResolver as ElasticContractResolver;

            if (contract == null)
            {
                throw new Exception($"NEST needs an instance of {nameof(ElasticContractResolver)} registered on Json.NET's JsonSerializerSettings");
            }
            contract.PiggyBackState = piggyBackState;

            return(settings);
        }
Example #2
0
        internal JsonSerializerSettings CreateSettings(IList <JsonConverter> extraConverters = null, JsonConverter piggyBackJsonConverter = null)
        {
            var converters = extraConverters.HasAny()
                                ? extraConverters.ToList()
                                : null;
            var piggyBackState = new JsonConverterPiggyBackState {
                ActualJsonConverter = piggyBackJsonConverter
            };
            var settings = new JsonSerializerSettings()
            {
                ContractResolver = new ElasticContractResolver(this._settings)
                {
                    PiggyBackState = piggyBackState
                },
                DefaultValueHandling = DefaultValueHandling.Include,
                NullValueHandling    = NullValueHandling.Ignore,
                Converters           = converters,
            };

            if (_settings.ModifyJsonSerializerSettings != null)
            {
                _settings.ModifyJsonSerializerSettings(settings);
            }

            return(settings);
        }
Example #3
0
        internal JsonSerializerSettings CreateSettings(JsonConverter piggyBackJsonConverter = null)
        {
            var piggyBackState = new JsonConverterPiggyBackState {
                ActualJsonConverter = piggyBackJsonConverter
            };
            var settings = new JsonSerializerSettings()
            {
                ContractResolver = new ElasticContractResolver(this._settings)
                {
                    PiggyBackState = piggyBackState
                },
                DefaultValueHandling = DefaultValueHandling.Include,
                NullValueHandling    = NullValueHandling.Ignore
            };

            if (_settings.ModifyJsonSerializerSettings != null)
            {
                _settings.ModifyJsonSerializerSettings(settings);
            }

            return(settings);
        }