Esempio n. 1
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.GetValueOrDefault();
            }
            else
            {
                previousDateTimeZoneHandling = null;
            }

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

            if (_floatParseHandling != null && reader.FloatParseHandling != _floatParseHandling)
            {
                previousFloatParseHandling = reader.FloatParseHandling;
                reader.FloatParseHandling  = _floatParseHandling.GetValueOrDefault();
            }
            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;
                }
            }
        }
Esempio n. 2
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;
            }
        }
Esempio n. 3
0
        internal virtual void SerializeInternal(JsonWriter jsonWriter, object value, Type objectType)
        {
            ValidationUtils.ArgumentNotNull(jsonWriter, nameof(jsonWriter));

            // set serialization options onto writer
            Formatting?previousFormatting = null;

            if (_formatting != null && jsonWriter.Formatting != _formatting)
            {
                previousFormatting    = jsonWriter.Formatting;
                jsonWriter.Formatting = _formatting.GetValueOrDefault();
            }

            DateFormatHandling?previousDateFormatHandling = null;

            if (_dateFormatHandling != null && jsonWriter.DateFormatHandling != _dateFormatHandling)
            {
                previousDateFormatHandling    = jsonWriter.DateFormatHandling;
                jsonWriter.DateFormatHandling = _dateFormatHandling.GetValueOrDefault();
            }

            DateTimeZoneHandling?previousDateTimeZoneHandling = null;

            if (_dateTimeZoneHandling != null && jsonWriter.DateTimeZoneHandling != _dateTimeZoneHandling)
            {
                previousDateTimeZoneHandling    = jsonWriter.DateTimeZoneHandling;
                jsonWriter.DateTimeZoneHandling = _dateTimeZoneHandling.GetValueOrDefault();
            }

            FloatFormatHandling?previousFloatFormatHandling = null;

            if (_floatFormatHandling != null && jsonWriter.FloatFormatHandling != _floatFormatHandling)
            {
                previousFloatFormatHandling    = jsonWriter.FloatFormatHandling;
                jsonWriter.FloatFormatHandling = _floatFormatHandling.GetValueOrDefault();
            }

            StringEscapeHandling?previousStringEscapeHandling = null;

            if (_stringEscapeHandling != null && jsonWriter.StringEscapeHandling != _stringEscapeHandling)
            {
                previousStringEscapeHandling    = jsonWriter.StringEscapeHandling;
                jsonWriter.StringEscapeHandling = _stringEscapeHandling.GetValueOrDefault();
            }

            CultureInfo previousCulture = null;

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

            string previousDateFormatString = null;

            if (_dateFormatStringSet && jsonWriter.DateFormatString != _dateFormatString)
            {
                previousDateFormatString    = jsonWriter.DateFormatString;
                jsonWriter.DateFormatString = _dateFormatString;
            }

            TraceJsonWriter traceJsonWriter = (TraceWriter != null && TraceWriter.LevelFilter >= TraceLevel.Verbose)
                ? new TraceJsonWriter(jsonWriter)
                : null;

            JsonSerializerInternalWriter serializerWriter = new JsonSerializerInternalWriter(this);

            serializerWriter.Serialize(traceJsonWriter ?? jsonWriter, value, objectType);

            if (traceJsonWriter != null)
            {
                TraceWriter.Trace(TraceLevel.Verbose, traceJsonWriter.GetSerializedJsonMessage(), null);
            }

            // reset writer back to previous options
            if (previousFormatting != null)
            {
                jsonWriter.Formatting = previousFormatting.GetValueOrDefault();
            }
            if (previousDateFormatHandling != null)
            {
                jsonWriter.DateFormatHandling = previousDateFormatHandling.GetValueOrDefault();
            }
            if (previousDateTimeZoneHandling != null)
            {
                jsonWriter.DateTimeZoneHandling = previousDateTimeZoneHandling.GetValueOrDefault();
            }
            if (previousFloatFormatHandling != null)
            {
                jsonWriter.FloatFormatHandling = previousFloatFormatHandling.GetValueOrDefault();
            }
            if (previousStringEscapeHandling != null)
            {
                jsonWriter.StringEscapeHandling = previousStringEscapeHandling.GetValueOrDefault();
            }
            if (_dateFormatStringSet)
            {
                jsonWriter.DateFormatString = previousDateFormatString;
            }
            if (previousCulture != null)
            {
                jsonWriter.Culture = previousCulture;
            }
        }
Esempio n. 4
0
        internal virtual void SerializeInternal(JsonWriter jsonWriter, object value)
        {
            ValidationUtils.ArgumentNotNull(jsonWriter, "jsonWriter");

            // set serialization options onto writer
            Formatting?previousFormatting = null;

            if (_formatting != null && jsonWriter.Formatting != _formatting)
            {
                previousFormatting    = jsonWriter.Formatting;
                jsonWriter.Formatting = _formatting.Value;
            }

            DateFormatHandling?previousDateFormatHandling = null;

            if (_dateFormatHandling != null && jsonWriter.DateFormatHandling != _dateFormatHandling)
            {
                previousDateFormatHandling    = jsonWriter.DateFormatHandling;
                jsonWriter.DateFormatHandling = _dateFormatHandling.Value;
            }

            DateTimeZoneHandling?previousDateTimeZoneHandling = null;

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

            FloatFormatHandling?previousFloatFormatHandling = null;

            if (_floatFormatHandling != null && jsonWriter.FloatFormatHandling != _floatFormatHandling)
            {
                previousFloatFormatHandling    = jsonWriter.FloatFormatHandling;
                jsonWriter.FloatFormatHandling = _floatFormatHandling.Value;
            }

            StringEscapeHandling?previousStringEscapeHandling = null;

            if (_stringEscapeHandling != null && jsonWriter.StringEscapeHandling != _stringEscapeHandling)
            {
                previousStringEscapeHandling    = jsonWriter.StringEscapeHandling;
                jsonWriter.StringEscapeHandling = _stringEscapeHandling.Value;
            }

            CultureInfo previousCulture = null;

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

            string previousDateFormatString = null;

            if (_dateFormatStringSet && jsonWriter.DateFormatString != _dateFormatString)
            {
                previousDateFormatString    = jsonWriter.DateFormatString;
                jsonWriter.DateFormatString = _dateFormatString;
            }

            JsonSerializerInternalWriter serializerWriter = new JsonSerializerInternalWriter(this);

            serializerWriter.Serialize(jsonWriter, value);

            // reset writer back to previous options
            if (previousFormatting != null)
            {
                jsonWriter.Formatting = previousFormatting.Value;
            }
            if (previousDateFormatHandling != null)
            {
                jsonWriter.DateFormatHandling = previousDateFormatHandling.Value;
            }
            if (previousDateTimeZoneHandling != null)
            {
                jsonWriter.DateTimeZoneHandling = previousDateTimeZoneHandling.Value;
            }
            if (previousFloatFormatHandling != null)
            {
                jsonWriter.FloatFormatHandling = previousFloatFormatHandling.Value;
            }
            if (previousStringEscapeHandling != null)
            {
                jsonWriter.StringEscapeHandling = previousStringEscapeHandling.Value;
            }
            if (_dateFormatStringSet)
            {
                jsonWriter.DateFormatString = previousDateFormatString;
            }
            if (previousCulture != null)
            {
                jsonWriter.Culture = previousCulture;
            }
        }
Esempio n. 5
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;
            }

            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;
            }

            string previousDateFormatString = null;

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

            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;
            }
            if (_dateFormatStringSet)
            {
                reader.DateFormatString = previousDateFormatString;
            }

            return(value);
        }
Esempio n. 6
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();
        }
Esempio n. 7
0
        internal virtual void SerializeInternal(JsonWriter jsonWriter, object value, Type objectType)
        {
            ValidationUtils.ArgumentNotNull((object)jsonWriter, nameof(jsonWriter));
            Formatting?nullable1 = new Formatting?();

            if (this._formatting.HasValue)
            {
                int        formatting1    = (int)jsonWriter.Formatting;
                Formatting?formatting2    = this._formatting;
                int        valueOrDefault = (int)formatting2.GetValueOrDefault();
                if ((formatting1 == valueOrDefault ? (!formatting2.HasValue ? 1 : 0) : 1) != 0)
                {
                    nullable1             = new Formatting?(jsonWriter.Formatting);
                    jsonWriter.Formatting = this._formatting.GetValueOrDefault();
                }
            }
            DateFormatHandling?nullable2 = new DateFormatHandling?();

            if (this._dateFormatHandling.HasValue)
            {
                int dateFormatHandling1 = (int)jsonWriter.DateFormatHandling;
                DateFormatHandling?dateFormatHandling2 = this._dateFormatHandling;
                int valueOrDefault = (int)dateFormatHandling2.GetValueOrDefault();
                if ((dateFormatHandling1 == valueOrDefault ? (!dateFormatHandling2.HasValue ? 1 : 0) : 1) != 0)
                {
                    nullable2 = new DateFormatHandling?(jsonWriter.DateFormatHandling);
                    jsonWriter.DateFormatHandling = this._dateFormatHandling.GetValueOrDefault();
                }
            }
            DateTimeZoneHandling?nullable3 = new DateTimeZoneHandling?();

            if (this._dateTimeZoneHandling.HasValue)
            {
                int timeZoneHandling1 = (int)jsonWriter.DateTimeZoneHandling;
                DateTimeZoneHandling?timeZoneHandling2 = this._dateTimeZoneHandling;
                int valueOrDefault = (int)timeZoneHandling2.GetValueOrDefault();
                if ((timeZoneHandling1 == valueOrDefault ? (!timeZoneHandling2.HasValue ? 1 : 0) : 1) != 0)
                {
                    nullable3 = new DateTimeZoneHandling?(jsonWriter.DateTimeZoneHandling);
                    jsonWriter.DateTimeZoneHandling = this._dateTimeZoneHandling.GetValueOrDefault();
                }
            }
            FloatFormatHandling?nullable4 = new FloatFormatHandling?();

            if (this._floatFormatHandling.HasValue)
            {
                int floatFormatHandling1 = (int)jsonWriter.FloatFormatHandling;
                FloatFormatHandling?floatFormatHandling2 = this._floatFormatHandling;
                int valueOrDefault = (int)floatFormatHandling2.GetValueOrDefault();
                if ((floatFormatHandling1 == valueOrDefault ? (!floatFormatHandling2.HasValue ? 1 : 0) : 1) != 0)
                {
                    nullable4 = new FloatFormatHandling?(jsonWriter.FloatFormatHandling);
                    jsonWriter.FloatFormatHandling = this._floatFormatHandling.GetValueOrDefault();
                }
            }
            StringEscapeHandling?nullable5 = new StringEscapeHandling?();

            if (this._stringEscapeHandling.HasValue)
            {
                int stringEscapeHandling1 = (int)jsonWriter.StringEscapeHandling;
                StringEscapeHandling?stringEscapeHandling2 = this._stringEscapeHandling;
                int valueOrDefault = (int)stringEscapeHandling2.GetValueOrDefault();
                if ((stringEscapeHandling1 == valueOrDefault ? (!stringEscapeHandling2.HasValue ? 1 : 0) : 1) != 0)
                {
                    nullable5 = new StringEscapeHandling?(jsonWriter.StringEscapeHandling);
                    jsonWriter.StringEscapeHandling = this._stringEscapeHandling.GetValueOrDefault();
                }
            }
            CultureInfo cultureInfo = (CultureInfo)null;

            if (this._culture != null && !this._culture.Equals((object)jsonWriter.Culture))
            {
                cultureInfo        = jsonWriter.Culture;
                jsonWriter.Culture = this._culture;
            }
            string str = (string)null;

            if (this._dateFormatStringSet && jsonWriter.DateFormatString != this._dateFormatString)
            {
                str = jsonWriter.DateFormatString;
                jsonWriter.DateFormatString = this._dateFormatString;
            }
            TraceJsonWriter traceJsonWriter = this.TraceWriter == null || this.TraceWriter.LevelFilter < TraceLevel.Verbose ? (TraceJsonWriter)null : new TraceJsonWriter(jsonWriter);

            new JsonSerializerInternalWriter(this).Serialize((JsonWriter)traceJsonWriter ?? jsonWriter, value, objectType);
            if (traceJsonWriter != null)
            {
                this.TraceWriter.Trace_(TraceLevel.Verbose, traceJsonWriter.GetSerializedJsonMessage(), (Exception)null);
            }
            if (nullable1.HasValue)
            {
                jsonWriter.Formatting = nullable1.GetValueOrDefault();
            }
            if (nullable2.HasValue)
            {
                jsonWriter.DateFormatHandling = nullable2.GetValueOrDefault();
            }
            if (nullable3.HasValue)
            {
                jsonWriter.DateTimeZoneHandling = nullable3.GetValueOrDefault();
            }
            if (nullable4.HasValue)
            {
                jsonWriter.FloatFormatHandling = nullable4.GetValueOrDefault();
            }
            if (nullable5.HasValue)
            {
                jsonWriter.StringEscapeHandling = nullable5.GetValueOrDefault();
            }
            if (this._dateFormatStringSet)
            {
                jsonWriter.DateFormatString = str;
            }
            if (cultureInfo == null)
            {
                return;
            }
            jsonWriter.Culture = cultureInfo;
        }
Esempio n. 8
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);
        }
Esempio n. 9
0
        internal virtual void SerializeInternal(JsonWriter jsonWriter, object value, Type objectType)
        {
            ValidationUtils.ArgumentNotNull(jsonWriter, "jsonWriter");
            Formatting?formatting = null;

            if (this._formatting.HasValue && jsonWriter.Formatting != this._formatting)
            {
                formatting            = new Formatting?(jsonWriter.Formatting);
                jsonWriter.Formatting = this._formatting.Value;
            }
            DateFormatHandling?dateFormatHandling = null;

            if (this._dateFormatHandling.HasValue && jsonWriter.DateFormatHandling != this._dateFormatHandling)
            {
                dateFormatHandling            = new DateFormatHandling?(jsonWriter.DateFormatHandling);
                jsonWriter.DateFormatHandling = this._dateFormatHandling.Value;
            }
            DateTimeZoneHandling?dateTimeZoneHandling = null;

            if (this._dateTimeZoneHandling.HasValue && jsonWriter.DateTimeZoneHandling != this._dateTimeZoneHandling)
            {
                dateTimeZoneHandling            = new DateTimeZoneHandling?(jsonWriter.DateTimeZoneHandling);
                jsonWriter.DateTimeZoneHandling = this._dateTimeZoneHandling.Value;
            }
            FloatFormatHandling?floatFormatHandling = null;

            if (this._floatFormatHandling.HasValue && jsonWriter.FloatFormatHandling != this._floatFormatHandling)
            {
                floatFormatHandling            = new FloatFormatHandling?(jsonWriter.FloatFormatHandling);
                jsonWriter.FloatFormatHandling = this._floatFormatHandling.Value;
            }
            StringEscapeHandling?stringEscapeHandling = null;

            if (this._stringEscapeHandling.HasValue && jsonWriter.StringEscapeHandling != this._stringEscapeHandling)
            {
                stringEscapeHandling            = new StringEscapeHandling?(jsonWriter.StringEscapeHandling);
                jsonWriter.StringEscapeHandling = this._stringEscapeHandling.Value;
            }
            CultureInfo cultureInfo = null;

            if (this._culture != null && !this._culture.Equals(jsonWriter.Culture))
            {
                cultureInfo        = jsonWriter.Culture;
                jsonWriter.Culture = this._culture;
            }
            string dateFormatString = null;

            if (this._dateFormatStringSet && jsonWriter.DateFormatString != this._dateFormatString)
            {
                dateFormatString            = jsonWriter.DateFormatString;
                jsonWriter.DateFormatString = this._dateFormatString;
            }
            TraceJsonWriter traceJsonWriter = (this.TraceWriter != null && this.TraceWriter.LevelFilter >= TraceLevel.Verbose) ? new TraceJsonWriter(jsonWriter) : null;
            JsonSerializerInternalWriter jsonSerializerInternalWriter = new JsonSerializerInternalWriter(this);

            jsonSerializerInternalWriter.Serialize(traceJsonWriter ?? jsonWriter, value, objectType);
            if (traceJsonWriter != null)
            {
                this.TraceWriter.Trace(TraceLevel.Verbose, "Serialized JSON: " + Environment.NewLine + traceJsonWriter.GetJson(), null);
            }
            if (formatting.HasValue)
            {
                jsonWriter.Formatting = formatting.Value;
            }
            if (dateFormatHandling.HasValue)
            {
                jsonWriter.DateFormatHandling = dateFormatHandling.Value;
            }
            if (dateTimeZoneHandling.HasValue)
            {
                jsonWriter.DateTimeZoneHandling = dateTimeZoneHandling.Value;
            }
            if (floatFormatHandling.HasValue)
            {
                jsonWriter.FloatFormatHandling = floatFormatHandling.Value;
            }
            if (stringEscapeHandling.HasValue)
            {
                jsonWriter.StringEscapeHandling = stringEscapeHandling.Value;
            }
            if (this._dateFormatStringSet)
            {
                jsonWriter.DateFormatString = dateFormatString;
            }
            if (cultureInfo != null)
            {
                jsonWriter.Culture = cultureInfo;
            }
        }
Esempio n. 10
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;
                }
            }
        }
Esempio n. 11
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();
                }
            }
        }
Esempio n. 12
0
        internal virtual void SerializeInternal([Nullable(1)] JsonWriter jsonWriter, object value, Type objectType)
        {
            ValidationUtils.ArgumentNotNull(jsonWriter, "jsonWriter");
            Formatting?formatting = null;

            if (this._formatting != null)
            {
                Formatting formatting2 = jsonWriter.Formatting;
                Formatting?formatting3 = this._formatting;
                if (!(formatting2 == formatting3.GetValueOrDefault() & formatting3 != null))
                {
                    formatting            = new Formatting?(jsonWriter.Formatting);
                    jsonWriter.Formatting = this._formatting.GetValueOrDefault();
                }
            }
            DateFormatHandling?dateFormatHandling = null;

            if (this._dateFormatHandling != null)
            {
                DateFormatHandling dateFormatHandling2 = jsonWriter.DateFormatHandling;
                DateFormatHandling?dateFormatHandling3 = this._dateFormatHandling;
                if (!(dateFormatHandling2 == dateFormatHandling3.GetValueOrDefault() & dateFormatHandling3 != null))
                {
                    dateFormatHandling            = new DateFormatHandling?(jsonWriter.DateFormatHandling);
                    jsonWriter.DateFormatHandling = this._dateFormatHandling.GetValueOrDefault();
                }
            }
            DateTimeZoneHandling?dateTimeZoneHandling = null;

            if (this._dateTimeZoneHandling != null)
            {
                DateTimeZoneHandling dateTimeZoneHandling2 = jsonWriter.DateTimeZoneHandling;
                DateTimeZoneHandling?dateTimeZoneHandling3 = this._dateTimeZoneHandling;
                if (!(dateTimeZoneHandling2 == dateTimeZoneHandling3.GetValueOrDefault() & dateTimeZoneHandling3 != null))
                {
                    dateTimeZoneHandling            = new DateTimeZoneHandling?(jsonWriter.DateTimeZoneHandling);
                    jsonWriter.DateTimeZoneHandling = this._dateTimeZoneHandling.GetValueOrDefault();
                }
            }
            FloatFormatHandling?floatFormatHandling = null;

            if (this._floatFormatHandling != null)
            {
                FloatFormatHandling floatFormatHandling2 = jsonWriter.FloatFormatHandling;
                FloatFormatHandling?floatFormatHandling3 = this._floatFormatHandling;
                if (!(floatFormatHandling2 == floatFormatHandling3.GetValueOrDefault() & floatFormatHandling3 != null))
                {
                    floatFormatHandling            = new FloatFormatHandling?(jsonWriter.FloatFormatHandling);
                    jsonWriter.FloatFormatHandling = this._floatFormatHandling.GetValueOrDefault();
                }
            }
            StringEscapeHandling?stringEscapeHandling = null;

            if (this._stringEscapeHandling != null)
            {
                StringEscapeHandling stringEscapeHandling2 = jsonWriter.StringEscapeHandling;
                StringEscapeHandling?stringEscapeHandling3 = this._stringEscapeHandling;
                if (!(stringEscapeHandling2 == stringEscapeHandling3.GetValueOrDefault() & stringEscapeHandling3 != null))
                {
                    stringEscapeHandling            = new StringEscapeHandling?(jsonWriter.StringEscapeHandling);
                    jsonWriter.StringEscapeHandling = this._stringEscapeHandling.GetValueOrDefault();
                }
            }
            CultureInfo cultureInfo = null;

            if (this._culture != null && !this._culture.Equals(jsonWriter.Culture))
            {
                cultureInfo        = jsonWriter.Culture;
                jsonWriter.Culture = this._culture;
            }
            string dateFormatString = null;

            if (this._dateFormatStringSet && jsonWriter.DateFormatString != this._dateFormatString)
            {
                dateFormatString            = jsonWriter.DateFormatString;
                jsonWriter.DateFormatString = this._dateFormatString;
            }
            TraceJsonWriter traceJsonWriter = (this.TraceWriter != null && this.TraceWriter.LevelFilter >= TraceLevel.Verbose) ? new TraceJsonWriter(jsonWriter) : null;

            new JsonSerializerInternalWriter(this).Serialize(traceJsonWriter ?? jsonWriter, value, objectType);
            if (traceJsonWriter != null)
            {
                this.TraceWriter.Trace(TraceLevel.Verbose, traceJsonWriter.GetSerializedJsonMessage(), null);
            }
            if (formatting != null)
            {
                jsonWriter.Formatting = formatting.GetValueOrDefault();
            }
            if (dateFormatHandling != null)
            {
                jsonWriter.DateFormatHandling = dateFormatHandling.GetValueOrDefault();
            }
            if (dateTimeZoneHandling != null)
            {
                jsonWriter.DateTimeZoneHandling = dateTimeZoneHandling.GetValueOrDefault();
            }
            if (floatFormatHandling != null)
            {
                jsonWriter.FloatFormatHandling = floatFormatHandling.GetValueOrDefault();
            }
            if (stringEscapeHandling != null)
            {
                jsonWriter.StringEscapeHandling = stringEscapeHandling.GetValueOrDefault();
            }
            if (this._dateFormatStringSet)
            {
                jsonWriter.DateFormatString = dateFormatString;
            }
            if (cultureInfo != null)
            {
                jsonWriter.Culture = cultureInfo;
            }
        }
Esempio n. 13
0
        internal virtual void SerializeInternal(JsonWriter jsonWriter, object value, Type objectType)
        {
            ValidationUtils.ArgumentNotNull(jsonWriter, "jsonWriter");

            // set serialization options onto writer
            Formatting?previousFormatting = null;

            if (_formatting != null && jsonWriter.Formatting != _formatting)
            {
                previousFormatting    = jsonWriter.Formatting;
                jsonWriter.Formatting = _formatting.Value;
            }

            DateFormatHandling?previousDateFormatHandling = null;

            if (_dateFormatHandling != null && jsonWriter.DateFormatHandling != _dateFormatHandling)
            {
                previousDateFormatHandling    = jsonWriter.DateFormatHandling;
                jsonWriter.DateFormatHandling = _dateFormatHandling.Value;
            }

            DateTimeZoneHandling?previousDateTimeZoneHandling = null;

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

            FloatFormatHandling?previousFloatFormatHandling = null;

            if (_floatFormatHandling != null && jsonWriter.FloatFormatHandling != _floatFormatHandling)
            {
                previousFloatFormatHandling    = jsonWriter.FloatFormatHandling;
                jsonWriter.FloatFormatHandling = _floatFormatHandling.Value;
            }

            StringEscapeHandling?previousStringEscapeHandling = null;

            if (_stringEscapeHandling != null && jsonWriter.StringEscapeHandling != _stringEscapeHandling)
            {
                previousStringEscapeHandling    = jsonWriter.StringEscapeHandling;
                jsonWriter.StringEscapeHandling = _stringEscapeHandling.Value;
            }

            CultureInfo previousCulture = null;

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

            string previousDateFormatString = null;

            if (_dateFormatStringSet && jsonWriter.DateFormatString != _dateFormatString)
            {
                previousDateFormatString    = jsonWriter.DateFormatString;
                jsonWriter.DateFormatString = _dateFormatString;
            }

            //TraceJsonWriter traceJsonWriter = (TraceWriter != null && TraceWriter.LevelFilter >= TraceLevel.Verbose)
            //    ? new TraceJsonWriter(jsonWriter)
            //    : null;

            JsonSerializerInternalWriter serializerWriter = new JsonSerializerInternalWriter(this);

            serializerWriter.Serialize(jsonWriter, value, objectType);

            //if (traceJsonWriter != null)
            //    TraceWriter.Trace(TraceLevel.Verbose, "Serialized JSON: " + Environment.NewLine + traceJsonWriter.GetJson(), null);

            // reset writer back to previous options
            if (previousFormatting != null)
            {
                jsonWriter.Formatting = previousFormatting.Value;
            }
            if (previousDateFormatHandling != null)
            {
                jsonWriter.DateFormatHandling = previousDateFormatHandling.Value;
            }
            if (previousDateTimeZoneHandling != null)
            {
                jsonWriter.DateTimeZoneHandling = previousDateTimeZoneHandling.Value;
            }
            if (previousFloatFormatHandling != null)
            {
                jsonWriter.FloatFormatHandling = previousFloatFormatHandling.Value;
            }
            if (previousStringEscapeHandling != null)
            {
                jsonWriter.StringEscapeHandling = previousStringEscapeHandling.Value;
            }
            if (_dateFormatStringSet)
            {
                jsonWriter.DateFormatString = previousDateFormatString;
            }
            if (previousCulture != null)
            {
                jsonWriter.Culture = previousCulture;
            }
        }
Esempio n. 14
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;
            }

            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;
            }

            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 (previousFloatParseHandling != null)
            {
                reader.FloatParseHandling = previousFloatParseHandling.Value;
            }
            if (_maxDepthSet)
            {
                reader.MaxDepth = previousMaxDepth;
            }

            return(value);
        }