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

            // set serialization options onto reader
            CultureInfo          previousCulture;
            DateTimeZoneHandling?previousDateTimeZoneHandling;
            DateParseHandling?   previousDateParseHandling;
            FloatParseHandling?  previousFloatParseHandling;
            int?   previousMaxDepth;
            string previousDateFormatString;

            SetupReader(reader, out previousCulture, out previousDateTimeZoneHandling, out previousDateParseHandling, out previousFloatParseHandling, out previousMaxDepth, out previousDateFormatString);

            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, traceJsonReader.GetDeserializedJsonMessage(), null);
            }

            ResetReader(reader, previousCulture, previousDateTimeZoneHandling, previousDateParseHandling, previousFloatParseHandling, previousMaxDepth, previousDateFormatString);

            return(value);
        }
Ejemplo n.º 2
0
        internal virtual void PopulateInternal(JsonReader reader, object target)
        {
            ValidationUtils.ArgumentNotNull(reader, "reader");
            ValidationUtils.ArgumentNotNull(target, "target");

            // set serialization options onto reader
            CultureInfo          previousCulture;
            DateTimeZoneHandling?previousDateTimeZoneHandling;
            DateParseHandling?   previousDateParseHandling;
            FloatParseHandling?  previousFloatParseHandling;
            int?   previousMaxDepth;
            string previousDateFormatString;

            SetupReader(reader, out previousCulture, out previousDateTimeZoneHandling, out previousDateParseHandling, out previousFloatParseHandling, out previousMaxDepth, out previousDateFormatString);

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

            JsonSerializerInternalReader serializerReader = new JsonSerializerInternalReader(this);

            serializerReader.Populate(traceJsonReader ?? reader, target);

            if (traceJsonReader != null)
            {
                TraceWriter.Trace(TraceLevel.Verbose, traceJsonReader.GetDeserializedJsonMessage(), null);
            }

            ResetReader(reader, previousCulture, previousDateTimeZoneHandling, previousDateParseHandling, previousFloatParseHandling, previousMaxDepth, previousDateFormatString);
        }
Ejemplo n.º 3
0
        internal virtual object DeserializeInternal(JsonReader reader, Type objectType)
        {
            ValidationUtils.ArgumentNotNull(reader, "reader");
            this.SetupReader(reader, out CultureInfo info, out Newtonsoft.Json.DateTimeZoneHandling? nullable, out Newtonsoft.Json.DateParseHandling? nullable2, out Newtonsoft.Json.FloatParseHandling? nullable3, out int?nullable4, out string str);
            TraceJsonReader reader2 = ((this.TraceWriter != null) && (this.TraceWriter.LevelFilter >= TraceLevel.Verbose)) ? new TraceJsonReader(reader) : null;

            if (reader2 == null)
            {
            }
            if (reader2 != null)
            {
                this.TraceWriter.Trace(TraceLevel.Verbose, reader2.GetDeserializedJsonMessage(), null);
            }
            this.ResetReader(reader, info, nullable, nullable2, nullable3, nullable4, str);
            return(new JsonSerializerInternalReader(this).Deserialize(reader, objectType, this.CheckAdditionalContent));
        }
Ejemplo n.º 4
0
        internal virtual void PopulateInternal(JsonReader reader, object target)
        {
            ValidationUtils.ArgumentNotNull(reader, "reader");
            ValidationUtils.ArgumentNotNull(target, "target");
            this.SetupReader(reader, out CultureInfo info, out Newtonsoft.Json.DateTimeZoneHandling? nullable, out Newtonsoft.Json.DateParseHandling? nullable2, out Newtonsoft.Json.FloatParseHandling? nullable3, out int?nullable4, out string str);
            TraceJsonReader reader2 = ((this.TraceWriter != null) && (this.TraceWriter.LevelFilter >= TraceLevel.Verbose)) ? new TraceJsonReader(reader) : null;

            if (reader2 == null)
            {
            }
            new JsonSerializerInternalReader(this).Populate(reader, target);
            if (reader2 != null)
            {
                this.TraceWriter.Trace(TraceLevel.Verbose, reader2.GetDeserializedJsonMessage(), null);
            }
            this.ResetReader(reader, info, nullable, nullable2, nullable3, nullable4, str);
        }
Ejemplo n.º 5
0
        internal virtual object DeserializeInternal(JsonReader reader, Type objectType)
        {
            ValidationUtils.ArgumentNotNull((object)reader, nameof(reader));
            CultureInfo          previousCulture;
            DateTimeZoneHandling?previousDateTimeZoneHandling;
            DateParseHandling?   previousDateParseHandling;
            FloatParseHandling?  previousFloatParseHandling;
            int?   previousMaxDepth;
            string previousDateFormatString;

            this.SetupReader(reader, out previousCulture, out previousDateTimeZoneHandling, out previousDateParseHandling, out previousFloatParseHandling, out previousMaxDepth, out previousDateFormatString);
            TraceJsonReader traceJsonReader = this.TraceWriter == null || this.TraceWriter.LevelFilter < TraceLevel.Verbose ? (TraceJsonReader)null : new TraceJsonReader(reader);
            object          obj             = new JsonSerializerInternalReader(this).Deserialize((JsonReader)traceJsonReader ?? reader, objectType, this.CheckAdditionalContent);

            if (traceJsonReader != null)
            {
                this.TraceWriter.Trace_(TraceLevel.Verbose, traceJsonReader.GetDeserializedJsonMessage(), (Exception)null);
            }
            this.ResetReader(reader, previousCulture, previousDateTimeZoneHandling, previousDateParseHandling, previousFloatParseHandling, previousMaxDepth, previousDateFormatString);
            return(obj);
        }
Ejemplo n.º 6
0
        internal virtual object DeserializeInternal([Nullable(1)] JsonReader reader, Type objectType)
        {
            ValidationUtils.ArgumentNotNull(reader, "reader");
            CultureInfo          previousCulture;
            DateTimeZoneHandling?previousDateTimeZoneHandling;
            DateParseHandling?   previousDateParseHandling;
            FloatParseHandling?  previousFloatParseHandling;
            int?   previousMaxDepth;
            string previousDateFormatString;

            this.SetupReader(reader, out previousCulture, out previousDateTimeZoneHandling, out previousDateParseHandling, out previousFloatParseHandling, out previousMaxDepth, out previousDateFormatString);
            TraceJsonReader traceJsonReader = (this.TraceWriter != null && this.TraceWriter.LevelFilter >= TraceLevel.Verbose) ? this.CreateTraceJsonReader(reader) : null;
            object          result          = new JsonSerializerInternalReader(this).Deserialize(traceJsonReader ?? reader, objectType, this.CheckAdditionalContent);

            if (traceJsonReader != null)
            {
                this.TraceWriter.Trace(TraceLevel.Verbose, traceJsonReader.GetDeserializedJsonMessage(), null);
            }
            this.ResetReader(reader, previousCulture, previousDateTimeZoneHandling, previousDateParseHandling, previousFloatParseHandling, previousMaxDepth, previousDateFormatString);
            return(result);
        }
Ejemplo n.º 7
0
        // Token: 0x06000C82 RID: 3202 RVA: 0x000505D0 File Offset: 0x0004E7D0
        internal virtual void PopulateInternal(JsonReader reader, object target)
        {
            ValidationUtils.ArgumentNotNull(reader, "reader");
            ValidationUtils.ArgumentNotNull(target, "target");
            CultureInfo          previousCulture;
            DateTimeZoneHandling?previousDateTimeZoneHandling;
            DateParseHandling?   previousDateParseHandling;
            FloatParseHandling?  previousFloatParseHandling;
            int?   previousMaxDepth;
            string previousDateFormatString;

            this.SetupReader(reader, out previousCulture, out previousDateTimeZoneHandling, out previousDateParseHandling, out previousFloatParseHandling, out previousMaxDepth, out previousDateFormatString);
            TraceJsonReader traceJsonReader = (this.TraceWriter == null || this.TraceWriter.LevelFilter < TraceLevel.Verbose) ? null : this.CreateTraceJsonReader(reader);

            new JsonSerializerInternalReader(this).Populate(traceJsonReader ?? reader, target);
            if (traceJsonReader != null)
            {
                this.TraceWriter.Trace(TraceLevel.Verbose, traceJsonReader.GetDeserializedJsonMessage(), null);
            }
            this.ResetReader(reader, previousCulture, previousDateTimeZoneHandling, previousDateParseHandling, previousFloatParseHandling, previousMaxDepth, previousDateFormatString);
        }
        internal virtual object DeserializeInternal(JsonReader reader, Type objectType)
        {
            CultureInfo cultureInfo;

            Newtonsoft.Json.DateTimeZoneHandling?nullable;
            Newtonsoft.Json.DateParseHandling?   nullable1;
            Newtonsoft.Json.FloatParseHandling?  nullable2;
            int?            nullable3;
            string          str;
            TraceJsonReader traceJsonReader;

            ValidationUtils.ArgumentNotNull(reader, "reader");
            this.SetupReader(reader, out cultureInfo, out nullable, out nullable1, out nullable2, out nullable3, out str);
            if (this.TraceWriter == null || this.TraceWriter.LevelFilter < TraceLevel.Verbose)
            {
                traceJsonReader = null;
            }
            else
            {
                traceJsonReader = new TraceJsonReader(reader);
            }
            TraceJsonReader traceJsonReader1 = traceJsonReader;
            JsonSerializerInternalReader jsonSerializerInternalReader = new JsonSerializerInternalReader(this);
            JsonReader jsonReader = traceJsonReader1;

            if (jsonReader == null)
            {
                jsonReader = reader;
            }
            object obj = jsonSerializerInternalReader.Deserialize(jsonReader, objectType, this.CheckAdditionalContent);

            if (traceJsonReader1 != null)
            {
                this.TraceWriter.Trace(TraceLevel.Verbose, traceJsonReader1.GetDeserializedJsonMessage(), null);
            }
            this.ResetReader(reader, cultureInfo, nullable, nullable1, nullable2, nullable3, str);
            return(obj);
        }
Ejemplo n.º 9
0
        internal virtual void PopulateInternal(JsonReader reader, object target)
        {
            CultureInfo cultureInfo;

            Newtonsoft.Json.DateTimeZoneHandling?nullable;
            Newtonsoft.Json.DateParseHandling?   nullable1;
            Newtonsoft.Json.FloatParseHandling?  nullable2;
            int?            nullable3;
            string          str;
            TraceJsonReader traceJsonReader;

            ValidationUtils.ArgumentNotNull(reader, "reader");
            ValidationUtils.ArgumentNotNull(target, "target");
            this.SetupReader(reader, out cultureInfo, out nullable, out nullable1, out nullable2, out nullable3, out str);
            if (this.TraceWriter == null || this.TraceWriter.LevelFilter < TraceLevel.Verbose)
            {
                traceJsonReader = null;
            }
            else
            {
                traceJsonReader = this.CreateTraceJsonReader(reader);
            }
            TraceJsonReader traceJsonReader1 = traceJsonReader;
            JsonSerializerInternalReader jsonSerializerInternalReader = new JsonSerializerInternalReader(this);
            JsonReader jsonReader = traceJsonReader1;

            if (jsonReader == null)
            {
                jsonReader = reader;
            }
            jsonSerializerInternalReader.Populate(jsonReader, target);
            if (traceJsonReader1 != null)
            {
                this.TraceWriter.Trace(TraceLevel.Verbose, traceJsonReader1.GetDeserializedJsonMessage(), null);
            }
            this.ResetReader(reader, cultureInfo, nullable, nullable1, nullable2, nullable3, str);
        }
Ejemplo n.º 10
0
        public void TraceJsonReaderTest()
        {
            string json = @"{
  ""Array"": [
    ""String!"",
    ""2000-12-12T12:12:12Z"",
    ""2000-12-12T12:12:12Z"",
    ""2000-12-12T12:12:12+00:00"",
    ""U3RyaW5nIQ=="",
    1,
    1.1,
    9999999990000000000000000000000000000000000,
    null,
    undefined,
    new ctor(
      1
    )
    /*A comment*/
  ]
}";

            StringReader    sw          = new StringReader(json);
            JsonTextReader  w           = new JsonTextReader(sw);
            TraceJsonReader traceReader = new TraceJsonReader(w);

            traceReader.Read();
            Assert.AreEqual(JsonToken.StartObject, traceReader.TokenType);

            traceReader.Read();
            Assert.AreEqual(JsonToken.PropertyName, traceReader.TokenType);
            Assert.AreEqual("Array", traceReader.Value);

            traceReader.Read();
            Assert.AreEqual(JsonToken.StartArray, traceReader.TokenType);
            Assert.AreEqual(null, traceReader.Value);

            traceReader.ReadAsString();
            Assert.AreEqual(JsonToken.String, traceReader.TokenType);
            Assert.AreEqual('"', traceReader.QuoteChar);
            Assert.AreEqual("String!", traceReader.Value);

            // for great code coverage justice!
            traceReader.QuoteChar = '\'';
            Assert.AreEqual('\'', traceReader.QuoteChar);

            traceReader.ReadAsString();
            Assert.AreEqual(JsonToken.String, traceReader.TokenType);
            Assert.AreEqual("2000-12-12T12:12:12Z", traceReader.Value);

            traceReader.ReadAsDateTime();
            Assert.AreEqual(JsonToken.Date, traceReader.TokenType);
            Assert.AreEqual(new DateTime(2000, 12, 12, 12, 12, 12, DateTimeKind.Utc), traceReader.Value);

            traceReader.ReadAsDateTimeOffset();
            Assert.AreEqual(JsonToken.Date, traceReader.TokenType);
            Assert.AreEqual(new DateTimeOffset(2000, 12, 12, 12, 12, 12, TimeSpan.Zero), traceReader.Value);

            traceReader.ReadAsBytes();
            Assert.AreEqual(JsonToken.Bytes, traceReader.TokenType);
            CollectionAssert.AreEqual(Encoding.UTF8.GetBytes("String!"), (byte[])traceReader.Value);

            traceReader.ReadAsInt32();
            Assert.AreEqual(JsonToken.Integer, traceReader.TokenType);
            Assert.AreEqual(1, traceReader.Value);

            traceReader.ReadAsDecimal();
            Assert.AreEqual(JsonToken.Float, traceReader.TokenType);
            Assert.AreEqual(1.1m, traceReader.Value);

            traceReader.Read();
            Assert.AreEqual(JsonToken.Integer, traceReader.TokenType);
            Assert.AreEqual(typeof(BigInteger), traceReader.ValueType);
            Assert.AreEqual(BigInteger.Parse("9999999990000000000000000000000000000000000"), traceReader.Value);

            traceReader.Read();
            Assert.AreEqual(JsonToken.Null, traceReader.TokenType);

            traceReader.Read();
            Assert.AreEqual(JsonToken.Undefined, traceReader.TokenType);

            traceReader.Read();
            Assert.AreEqual(JsonToken.StartConstructor, traceReader.TokenType);

            traceReader.Read();
            Assert.AreEqual(JsonToken.Integer, traceReader.TokenType);
            Assert.AreEqual(1L, traceReader.Value);

            traceReader.Read();
            Assert.AreEqual(JsonToken.EndConstructor, traceReader.TokenType);

            traceReader.Read();
            Assert.AreEqual(JsonToken.Comment, traceReader.TokenType);
            Assert.AreEqual("A comment", traceReader.Value);

            traceReader.Read();
            Assert.AreEqual(JsonToken.EndArray, traceReader.TokenType);

            traceReader.Read();
            Assert.AreEqual(JsonToken.EndObject, traceReader.TokenType);

            Assert.IsFalse(traceReader.Read());

            traceReader.Close();

            StringAssert.AreEqual("Deserialized JSON: " + Environment.NewLine + json, traceReader.GetDeserializedJsonMessage());
        }