Exemplo n.º 1
0
        internal virtual object DeserializeInternal(JsonReader reader, Type objectType)
        {
            ValidationUtils.ArgumentNotNull(reader, "reader");

            // set serialization options onto reader
            CultureInfo previousCulture = null;

            if (_culture != null && !_culture.Equals(reader.Culture))
            {
                previousCulture = reader.Culture;
                reader.Culture  = _culture;
            }

            DateTimeZoneHandling?previousDateTimeZoneHandling = null;

            if (_dateTimeZoneHandling != null && reader.DateTimeZoneHandling != _dateTimeZoneHandling)
            {
                previousDateTimeZoneHandling = reader.DateTimeZoneHandling;
                reader.DateTimeZoneHandling  = _dateTimeZoneHandling.Value;
            }

            DateParseHandling?previousDateParseHandling = null;

            if (_dateParseHandling != null && reader.DateParseHandling != _dateParseHandling)
            {
                previousDateParseHandling = reader.DateParseHandling;
                reader.DateParseHandling  = _dateParseHandling.Value;
            }

            int?previousMaxDepth = null;

            if (_maxDepthSet && reader.MaxDepth != _maxDepth)
            {
                previousMaxDepth = reader.MaxDepth;
                reader.MaxDepth  = _maxDepth;
            }

            JsonSerializerInternalReader serializerReader = new JsonSerializerInternalReader(this);
            object value = serializerReader.Deserialize(reader, objectType, CheckAdditionalContent);

            // reset reader back to previous options
            if (previousCulture != null)
            {
                reader.Culture = previousCulture;
            }
            if (previousDateTimeZoneHandling != null)
            {
                reader.DateTimeZoneHandling = previousDateTimeZoneHandling.Value;
            }
            if (previousDateParseHandling != null)
            {
                reader.DateParseHandling = previousDateParseHandling.Value;
            }
            if (_maxDepthSet)
            {
                reader.MaxDepth = previousMaxDepth;
            }

            return(value);
        }
Exemplo n.º 2
0
        private void ResetReader(
            JsonReader reader,
            CultureInfo previousCulture,
            DateTimeZoneHandling?previousDateTimeZoneHandling,
            DateParseHandling?previousDateParseHandling,
            FloatParseHandling?previousFloatParseHandling,
            int?previousMaxDepth,
            string previousDateFormatString)
        {
            if (previousCulture != null)
            {
                reader.Culture = previousCulture;
            }
            if (previousDateTimeZoneHandling.HasValue)
            {
                reader.DateTimeZoneHandling = previousDateTimeZoneHandling.GetValueOrDefault();
            }
            if (previousDateParseHandling.HasValue)
            {
                reader.DateParseHandling = previousDateParseHandling.GetValueOrDefault();
            }
            if (previousFloatParseHandling.HasValue)
            {
                reader.FloatParseHandling = previousFloatParseHandling.GetValueOrDefault();
            }
            if (this._maxDepthSet)
            {
                reader.MaxDepth = previousMaxDepth;
            }
            if (this._dateFormatStringSet)
            {
                reader.DateFormatString = previousDateFormatString;
            }
            JsonTextReader jsonTextReader = reader as JsonTextReader;

            if (jsonTextReader == null)
            {
                return;
            }
            jsonTextReader.NameTable = (PropertyNameTable)null;
        }
        internal virtual object DeserializeInternal(JsonReader reader, Type objectType)
        {
            ValidationUtils.ArgumentNotNull(reader, "reader");

            // set serialization options onto reader
            CultureInfo previousCulture = null;

            if (_culture != null && !_culture.Equals(reader.Culture))
            {
                previousCulture = reader.Culture;
                reader.Culture  = _culture;
            }

            DateTimeZoneHandling?previousDateTimeZoneHandling = null;

            if (_dateTimeZoneHandling != null && reader.DateTimeZoneHandling != _dateTimeZoneHandling)
            {
                previousDateTimeZoneHandling = reader.DateTimeZoneHandling;
                reader.DateTimeZoneHandling  = _dateTimeZoneHandling.Value;
            }

            DateParseHandling?previousDateParseHandling = null;

            if (_dateParseHandling != null && reader.DateParseHandling != _dateParseHandling)
            {
                previousDateParseHandling = reader.DateParseHandling;
                reader.DateParseHandling  = _dateParseHandling.Value;
            }

            FloatParseHandling?previousFloatParseHandling = null;

            if (_floatParseHandling != null && reader.FloatParseHandling != _floatParseHandling)
            {
                previousFloatParseHandling = reader.FloatParseHandling;
                reader.FloatParseHandling  = _floatParseHandling.Value;
            }

            int?previousMaxDepth = null;

            if (_maxDepthSet && reader.MaxDepth != _maxDepth)
            {
                previousMaxDepth = reader.MaxDepth;
                reader.MaxDepth  = _maxDepth;
            }

            TraceJsonReader traceJsonReader = (TraceWriter != null && TraceWriter.LevelFilter >= TraceLevel.Verbose)
                                          ? new TraceJsonReader(reader)
                                          : null;

            JsonSerializerInternalReader serializerReader = new JsonSerializerInternalReader(this);
            object value = serializerReader.Deserialize(traceJsonReader ?? reader, objectType, CheckAdditionalContent);

            if (traceJsonReader != null)
            {
                TraceWriter.Trace(TraceLevel.Verbose, "Deserialized JSON: " + Environment.NewLine + traceJsonReader.GetJson(), null);
            }

            // reset reader back to previous options
            if (previousCulture != null)
            {
                reader.Culture = previousCulture;
            }
            if (previousDateTimeZoneHandling != null)
            {
                reader.DateTimeZoneHandling = previousDateTimeZoneHandling.Value;
            }
            if (previousDateParseHandling != null)
            {
                reader.DateParseHandling = previousDateParseHandling.Value;
            }
            if (previousFloatParseHandling != null)
            {
                reader.FloatParseHandling = previousFloatParseHandling.Value;
            }
            if (_maxDepthSet)
            {
                reader.MaxDepth = previousMaxDepth;
            }

            return(value);
        }
Exemplo n.º 4
0
        private void ResetReader(JsonReader reader, CultureInfo previousCulture, DateTimeZoneHandling?previousDateTimeZoneHandling, DateParseHandling?previousDateParseHandling, FloatParseHandling?previousFloatParseHandling, int?previousMaxDepth, string previousDateFormatString)
        {
            // reset reader back to previous options
            if (previousCulture != null)
            {
                reader.Culture = previousCulture;
            }
            if (previousDateTimeZoneHandling != null)
            {
                reader.DateTimeZoneHandling = previousDateTimeZoneHandling.Value;
            }
            if (previousDateParseHandling != null)
            {
                reader.DateParseHandling = previousDateParseHandling.Value;
            }
            if (previousFloatParseHandling != null)
            {
                reader.FloatParseHandling = previousFloatParseHandling.Value;
            }
            if (_maxDepthSet)
            {
                reader.MaxDepth = previousMaxDepth;
            }
            if (_dateFormatStringSet)
            {
                reader.DateFormatString = previousDateFormatString;
            }

            JsonTextReader textReader = reader as JsonTextReader;

            if (textReader != null)
            {
                textReader.NameTable = null;
            }
        }
Exemplo n.º 5
0
        private void SetupReader(JsonReader reader, out CultureInfo previousCulture, out DateTimeZoneHandling?previousDateTimeZoneHandling, out DateParseHandling?previousDateParseHandling, out FloatParseHandling?previousFloatParseHandling, out int?previousMaxDepth, out string previousDateFormatString)
        {
            if (_culture != null && !_culture.Equals(reader.Culture))
            {
                previousCulture = reader.Culture;
                reader.Culture  = _culture;
            }
            else
            {
                previousCulture = null;
            }

            if (_dateTimeZoneHandling != null && reader.DateTimeZoneHandling != _dateTimeZoneHandling)
            {
                previousDateTimeZoneHandling = reader.DateTimeZoneHandling;
                reader.DateTimeZoneHandling  = _dateTimeZoneHandling.Value;
            }
            else
            {
                previousDateTimeZoneHandling = null;
            }

            if (_dateParseHandling != null && reader.DateParseHandling != _dateParseHandling)
            {
                previousDateParseHandling = reader.DateParseHandling;
                reader.DateParseHandling  = _dateParseHandling.Value;
            }
            else
            {
                previousDateParseHandling = null;
            }

            if (_floatParseHandling != null && reader.FloatParseHandling != _floatParseHandling)
            {
                previousFloatParseHandling = reader.FloatParseHandling;
                reader.FloatParseHandling  = _floatParseHandling.Value;
            }
            else
            {
                previousFloatParseHandling = null;
            }

            if (_maxDepthSet && reader.MaxDepth != _maxDepth)
            {
                previousMaxDepth = reader.MaxDepth;
                reader.MaxDepth  = _maxDepth;
            }
            else
            {
                previousMaxDepth = null;
            }

            if (_dateFormatStringSet && reader.DateFormatString != _dateFormatString)
            {
                previousDateFormatString = reader.DateFormatString;
                reader.DateFormatString  = _dateFormatString;
            }
            else
            {
                previousDateFormatString = null;
            }

            JsonTextReader textReader = reader as JsonTextReader;

            if (textReader != null)
            {
                DefaultContractResolver resolver = _contractResolver as DefaultContractResolver;
                if (resolver != null)
                {
                    textReader.NameTable = resolver.GetState().NameTable;
                }
            }
        }
Exemplo n.º 6
0
        internal virtual object DeserializeInternal(JsonReader reader, Type objectType)
        {
            ValidationUtils.ArgumentNotNull((object)reader, "reader");
            CultureInfo cultureInfo = (CultureInfo)null;

            if (this._culture != null && reader.Culture != this._culture)
            {
                cultureInfo    = reader.Culture;
                reader.Culture = this._culture;
            }
            DateTimeZoneHandling?nullable1 = new DateTimeZoneHandling?();

            if (this._dateTimeZoneHandling.HasValue)
            {
                DateTimeZoneHandling timeZoneHandling = reader.DateTimeZoneHandling;
                DateTimeZoneHandling?nullable2        = this._dateTimeZoneHandling;
                if ((timeZoneHandling != nullable2.GetValueOrDefault() ? 1 : (!nullable2.HasValue ? 1 : 0)) != 0)
                {
                    nullable1 = new DateTimeZoneHandling?(reader.DateTimeZoneHandling);
                    reader.DateTimeZoneHandling = this._dateTimeZoneHandling.Value;
                }
            }
            DateParseHandling?nullable3 = new DateParseHandling?();

            if (this._dateParseHandling.HasValue)
            {
                DateParseHandling dateParseHandling = reader.DateParseHandling;
                DateParseHandling?nullable2         = this._dateParseHandling;
                if ((dateParseHandling != nullable2.GetValueOrDefault() ? 1 : (!nullable2.HasValue ? 1 : 0)) != 0)
                {
                    nullable3 = new DateParseHandling?(reader.DateParseHandling);
                    reader.DateParseHandling = this._dateParseHandling.Value;
                }
            }
            int?nullable4 = new int?();

            if (this._maxDepthSet)
            {
                int?maxDepth  = reader.MaxDepth;
                int?nullable2 = this._maxDepth;
                if ((maxDepth.GetValueOrDefault() != nullable2.GetValueOrDefault() ? 1 : (maxDepth.HasValue != nullable2.HasValue ? 1 : 0)) != 0)
                {
                    nullable4       = reader.MaxDepth;
                    reader.MaxDepth = this._maxDepth;
                }
            }
            object obj = new JsonSerializerInternalReader(this).Deserialize(reader, objectType, this.CheckAdditionalContent);

            if (cultureInfo != null)
            {
                reader.Culture = cultureInfo;
            }
            if (nullable1.HasValue)
            {
                reader.DateTimeZoneHandling = nullable1.Value;
            }
            if (nullable3.HasValue)
            {
                reader.DateParseHandling = nullable3.Value;
            }
            if (this._maxDepthSet)
            {
                reader.MaxDepth = nullable4;
            }
            return(obj);
        }
Exemplo n.º 7
0
        /// <summary>
        /// See https://stackoverflow.com/questions/56944160/efficiently-get-full-json-string-in-jsonconverter-readjson
        /// </summary>
        private static string ReadOuterJson(JsonReader reader, Formatting formatting = Formatting.None, DateParseHandling?dateParseHandling = DateParseHandling.None, FloatParseHandling?floatParseHandling = null)
        {
            if (reader.TokenType == JsonToken.Null)
            {
                return(null);
            }
            var oldDateParseHandling  = reader.DateParseHandling;
            var oldFloatParseHandling = reader.FloatParseHandling;

            try
            {
                if (dateParseHandling != null)
                {
                    reader.DateParseHandling = dateParseHandling.Value;
                }
                if (floatParseHandling != null)
                {
                    reader.FloatParseHandling = floatParseHandling.Value;
                }
                using (var sw = new StringWriter(CultureInfo.InvariantCulture))
                    using (var jsonWriter = new JsonTextWriter(sw)
                    {
                        Formatting = formatting
                    })
                    {
                        jsonWriter.WriteToken(reader);
                        return(sw.ToString());
                    }
            }
            finally
            {
                reader.DateParseHandling  = oldDateParseHandling;
                reader.FloatParseHandling = oldFloatParseHandling;
            }
        }
Exemplo n.º 8
0
        private void SetupReader(JsonReader reader, out CultureInfo previousCulture, out DateTimeZoneHandling?previousDateTimeZoneHandling, out DateParseHandling?previousDateParseHandling, out FloatParseHandling?previousFloatParseHandling, out int?previousMaxDepth, out string previousDateFormatString)
        {
            if (_culture != null && !_culture.Equals(reader.Culture))
            {
                previousCulture = reader.Culture;
                reader.Culture  = _culture;
            }
            else
            {
                previousCulture = null;
            }

            if (_dateTimeZoneHandling != null && reader.DateTimeZoneHandling != _dateTimeZoneHandling)
            {
                previousDateTimeZoneHandling = reader.DateTimeZoneHandling;
                reader.DateTimeZoneHandling  = _dateTimeZoneHandling.Value;
            }
            else
            {
                previousDateTimeZoneHandling = null;
            }

            if (_dateParseHandling != null && reader.DateParseHandling != _dateParseHandling)
            {
                previousDateParseHandling = reader.DateParseHandling;
                reader.DateParseHandling  = _dateParseHandling.Value;
            }
            else
            {
                previousDateParseHandling = null;
            }

            if (_floatParseHandling != null && reader.FloatParseHandling != _floatParseHandling)
            {
                previousFloatParseHandling = reader.FloatParseHandling;
                reader.FloatParseHandling  = _floatParseHandling.Value;
            }
            else
            {
                previousFloatParseHandling = null;
            }

            if (_maxDepthSet && reader.MaxDepth != _maxDepth)
            {
                previousMaxDepth = reader.MaxDepth;
                reader.MaxDepth  = _maxDepth;
            }
            else
            {
                previousMaxDepth = null;
            }

            if (_dateFormatStringSet && reader.DateFormatString != _dateFormatString)
            {
                previousDateFormatString = reader.DateFormatString;
                reader.DateFormatString  = _dateFormatString;
            }
            else
            {
                previousDateFormatString = null;
            }
        }
Exemplo n.º 9
0
        private void SetupReader(
            JsonReader reader,
            out CultureInfo previousCulture,
            out DateTimeZoneHandling?previousDateTimeZoneHandling,
            out DateParseHandling?previousDateParseHandling,
            out FloatParseHandling?previousFloatParseHandling,
            out int?previousMaxDepth,
            out string previousDateFormatString)
        {
            if (this._culture != null && !this._culture.Equals((object)reader.Culture))
            {
                previousCulture = reader.Culture;
                reader.Culture  = this._culture;
            }
            else
            {
                previousCulture = (CultureInfo)null;
            }
            if (this._dateTimeZoneHandling.HasValue)
            {
                int timeZoneHandling1 = (int)reader.DateTimeZoneHandling;
                DateTimeZoneHandling?timeZoneHandling2 = this._dateTimeZoneHandling;
                int valueOrDefault = (int)timeZoneHandling2.GetValueOrDefault();
                if ((timeZoneHandling1 == valueOrDefault ? (!timeZoneHandling2.HasValue ? 1 : 0) : 1) != 0)
                {
                    previousDateTimeZoneHandling = new DateTimeZoneHandling?(reader.DateTimeZoneHandling);
                    reader.DateTimeZoneHandling  = this._dateTimeZoneHandling.GetValueOrDefault();
                    goto label_7;
                }
            }
            previousDateTimeZoneHandling = new DateTimeZoneHandling?();
            label_7:
            if (this._dateParseHandling.HasValue)
            {
                int dateParseHandling1 = (int)reader.DateParseHandling;
                DateParseHandling?dateParseHandling2 = this._dateParseHandling;
                int valueOrDefault = (int)dateParseHandling2.GetValueOrDefault();
                if ((dateParseHandling1 == valueOrDefault ? (!dateParseHandling2.HasValue ? 1 : 0) : 1) != 0)
                {
                    previousDateParseHandling = new DateParseHandling?(reader.DateParseHandling);
                    reader.DateParseHandling  = this._dateParseHandling.GetValueOrDefault();
                    goto label_11;
                }
            }
            previousDateParseHandling = new DateParseHandling?();
            label_11:
            if (this._floatParseHandling.HasValue)
            {
                int floatParseHandling1 = (int)reader.FloatParseHandling;
                FloatParseHandling?floatParseHandling2 = this._floatParseHandling;
                int valueOrDefault = (int)floatParseHandling2.GetValueOrDefault();
                if ((floatParseHandling1 == valueOrDefault ? (!floatParseHandling2.HasValue ? 1 : 0) : 1) != 0)
                {
                    previousFloatParseHandling = new FloatParseHandling?(reader.FloatParseHandling);
                    reader.FloatParseHandling  = this._floatParseHandling.GetValueOrDefault();
                    goto label_15;
                }
            }
            previousFloatParseHandling = new FloatParseHandling?();
            label_15:
            if (this._maxDepthSet)
            {
                int?maxDepth1 = reader.MaxDepth;
                int?maxDepth2 = this._maxDepth;
                if ((maxDepth1.GetValueOrDefault() == maxDepth2.GetValueOrDefault() ? (maxDepth1.HasValue != maxDepth2.HasValue ? 1 : 0) : 1) != 0)
                {
                    previousMaxDepth = reader.MaxDepth;
                    reader.MaxDepth  = this._maxDepth;
                    goto label_19;
                }
            }
            previousMaxDepth = new int?();
label_19:
            if (this._dateFormatStringSet && reader.DateFormatString != this._dateFormatString)
            {
                previousDateFormatString = reader.DateFormatString;
                reader.DateFormatString  = this._dateFormatString;
            }
            else
            {
                previousDateFormatString = (string)null;
            }
            JsonTextReader jsonTextReader = reader as JsonTextReader;

            if (jsonTextReader == null)
            {
                return;
            }
            DefaultContractResolver contractResolver = this._contractResolver as DefaultContractResolver;

            if (contractResolver == null)
            {
                return;
            }
            jsonTextReader.NameTable = contractResolver.GetNameTable();
        }
Exemplo n.º 10
0
        internal virtual object DeserializeInternal(JsonReader reader, Type objectType)
        {
            ValidationUtils.ArgumentNotNull(reader, "reader");
            CultureInfo cultureInfo = null;

            if (this._culture != null && !this._culture.Equals(reader.Culture))
            {
                cultureInfo    = reader.Culture;
                reader.Culture = this._culture;
            }
            DateTimeZoneHandling?dateTimeZoneHandling = null;

            if (this._dateTimeZoneHandling.HasValue && reader.DateTimeZoneHandling != this._dateTimeZoneHandling)
            {
                dateTimeZoneHandling        = new DateTimeZoneHandling?(reader.DateTimeZoneHandling);
                reader.DateTimeZoneHandling = this._dateTimeZoneHandling.Value;
            }
            DateParseHandling?dateParseHandling = null;

            if (this._dateParseHandling.HasValue && reader.DateParseHandling != this._dateParseHandling)
            {
                dateParseHandling        = new DateParseHandling?(reader.DateParseHandling);
                reader.DateParseHandling = this._dateParseHandling.Value;
            }
            FloatParseHandling?floatParseHandling = null;

            if (this._floatParseHandling.HasValue && reader.FloatParseHandling != this._floatParseHandling)
            {
                floatParseHandling        = new FloatParseHandling?(reader.FloatParseHandling);
                reader.FloatParseHandling = this._floatParseHandling.Value;
            }
            int?maxDepth = null;

            if (this._maxDepthSet && reader.MaxDepth != this._maxDepth)
            {
                maxDepth        = reader.MaxDepth;
                reader.MaxDepth = this._maxDepth;
            }
            TraceJsonReader traceJsonReader = (this.TraceWriter != null && this.TraceWriter.LevelFilter >= TraceLevel.Verbose) ? new TraceJsonReader(reader) : null;
            JsonSerializerInternalReader jsonSerializerInternalReader = new JsonSerializerInternalReader(this);
            object result = jsonSerializerInternalReader.Deserialize(traceJsonReader ?? reader, objectType, this.CheckAdditionalContent);

            if (traceJsonReader != null)
            {
                this.TraceWriter.Trace(TraceLevel.Verbose, "Deserialized JSON: " + Environment.NewLine + traceJsonReader.GetJson(), null);
            }
            if (cultureInfo != null)
            {
                reader.Culture = cultureInfo;
            }
            if (dateTimeZoneHandling.HasValue)
            {
                reader.DateTimeZoneHandling = dateTimeZoneHandling.Value;
            }
            if (dateParseHandling.HasValue)
            {
                reader.DateParseHandling = dateParseHandling.Value;
            }
            if (floatParseHandling.HasValue)
            {
                reader.FloatParseHandling = floatParseHandling.Value;
            }
            if (this._maxDepthSet)
            {
                reader.MaxDepth = maxDepth;
            }
            return(result);
        }
Exemplo n.º 11
0
        private void ResetReader([Nullable(1)] JsonReader reader, CultureInfo previousCulture, DateTimeZoneHandling?previousDateTimeZoneHandling, DateParseHandling?previousDateParseHandling, FloatParseHandling?previousFloatParseHandling, int?previousMaxDepth, string previousDateFormatString)
        {
            if (previousCulture != null)
            {
                reader.Culture = previousCulture;
            }
            if (previousDateTimeZoneHandling != null)
            {
                reader.DateTimeZoneHandling = previousDateTimeZoneHandling.GetValueOrDefault();
            }
            if (previousDateParseHandling != null)
            {
                reader.DateParseHandling = previousDateParseHandling.GetValueOrDefault();
            }
            if (previousFloatParseHandling != null)
            {
                reader.FloatParseHandling = previousFloatParseHandling.GetValueOrDefault();
            }
            if (this._maxDepthSet)
            {
                reader.MaxDepth = previousMaxDepth;
            }
            if (this._dateFormatStringSet)
            {
                reader.DateFormatString = previousDateFormatString;
            }
            JsonTextReader jsonTextReader = reader as JsonTextReader;

            if (jsonTextReader != null && jsonTextReader.PropertyNameTable != null)
            {
                DefaultContractResolver defaultContractResolver = this._contractResolver as DefaultContractResolver;
                if (defaultContractResolver != null && jsonTextReader.PropertyNameTable == defaultContractResolver.GetNameTable())
                {
                    jsonTextReader.PropertyNameTable = null;
                }
            }
        }
Exemplo n.º 12
0
        private void SetupReader([Nullable(1)] JsonReader reader, out CultureInfo previousCulture, out DateTimeZoneHandling?previousDateTimeZoneHandling, out DateParseHandling?previousDateParseHandling, out FloatParseHandling?previousFloatParseHandling, out int?previousMaxDepth, out string previousDateFormatString)
        {
            if (this._culture != null && !this._culture.Equals(reader.Culture))
            {
                previousCulture = reader.Culture;
                reader.Culture  = this._culture;
            }
            else
            {
                previousCulture = null;
            }
            if (this._dateTimeZoneHandling != null)
            {
                DateTimeZoneHandling dateTimeZoneHandling  = reader.DateTimeZoneHandling;
                DateTimeZoneHandling?dateTimeZoneHandling2 = this._dateTimeZoneHandling;
                if (!(dateTimeZoneHandling == dateTimeZoneHandling2.GetValueOrDefault() & dateTimeZoneHandling2 != null))
                {
                    previousDateTimeZoneHandling = new DateTimeZoneHandling?(reader.DateTimeZoneHandling);
                    reader.DateTimeZoneHandling  = this._dateTimeZoneHandling.GetValueOrDefault();
                    goto IL_9E;
                }
            }
            previousDateTimeZoneHandling = null;
IL_9E:
            if (this._dateParseHandling != null)
            {
                DateParseHandling dateParseHandling  = reader.DateParseHandling;
                DateParseHandling?dateParseHandling2 = this._dateParseHandling;
                if (!(dateParseHandling == dateParseHandling2.GetValueOrDefault() & dateParseHandling2 != null))
                {
                    previousDateParseHandling = new DateParseHandling?(reader.DateParseHandling);
                    reader.DateParseHandling  = this._dateParseHandling.GetValueOrDefault();
                    goto IL_101;
                }
            }
            previousDateParseHandling = null;
IL_101:
            if (this._floatParseHandling != null)
            {
                FloatParseHandling floatParseHandling  = reader.FloatParseHandling;
                FloatParseHandling?floatParseHandling2 = this._floatParseHandling;
                if (!(floatParseHandling == floatParseHandling2.GetValueOrDefault() & floatParseHandling2 != null))
                {
                    previousFloatParseHandling = new FloatParseHandling?(reader.FloatParseHandling);
                    reader.FloatParseHandling  = this._floatParseHandling.GetValueOrDefault();
                    goto IL_164;
                }
            }
            previousFloatParseHandling = null;
IL_164:
            if (this._maxDepthSet)
            {
                int?maxDepth  = reader.MaxDepth;
                int?maxDepth2 = this._maxDepth;
                if (!(maxDepth.GetValueOrDefault() == maxDepth2.GetValueOrDefault() & maxDepth != null == (maxDepth2 != null)))
                {
                    previousMaxDepth = reader.MaxDepth;
                    reader.MaxDepth  = this._maxDepth;
                    goto IL_1CA;
                }
            }
            previousMaxDepth = null;
IL_1CA:
            if (this._dateFormatStringSet && reader.DateFormatString != this._dateFormatString)
            {
                previousDateFormatString = reader.DateFormatString;
                reader.DateFormatString  = this._dateFormatString;
            }
            else
            {
                previousDateFormatString = null;
            }
            JsonTextReader jsonTextReader = reader as JsonTextReader;

            if (jsonTextReader != null && jsonTextReader.PropertyNameTable == null)
            {
                DefaultContractResolver defaultContractResolver = this._contractResolver as DefaultContractResolver;
                if (defaultContractResolver != null)
                {
                    jsonTextReader.PropertyNameTable = defaultContractResolver.GetNameTable();
                }
            }
        }