Exemple #1
0
        public Mocking(string description = null, Action <string> logAction = null, Formatting?logFormatting = null)
        {
            _random = new Random();
            _moq    = new Mock <TMoq>();
            Action <string> notNullLogaction = logAction ?? Mocking.LogAction ?? (message => Trace.WriteLine(message));

            description = description ?? typeof(TMoq).Name;
            Action <string> prefixedLogAction = message => notNullLogaction($"{"ARRANGE".PadRight(10)}{description}: {message}");

            LogFormatting = logFormatting ?? Mocking.LogFormatting;

            Dictionary <string, object> mockingContext = new Dictionary <string, object>();

            _setup = new TMockingSetup();
            _setup.LogFormatting  = LogFormatting;
            _setup.MockingContext = mockingContext;
            _setup.Moq            = _moq;
            _setup.LogAction      = prefixedLogAction;

            _verification = new TMockingVerification();
            _verification.LogFormatting  = LogFormatting;
            _verification.MockingContext = mockingContext;
            _verification.Moq            = _moq;
            _verification.LogAction      = prefixedLogAction;
        }
Exemple #2
0
 /// <summary>
 /// 지정한 객체를 JSON 포맷으로 직렬화를 수행하고, 문자열로 반환합니다.
 /// </summary>
 public static string SerializeAsText <T>(T graph, Formatting?formatting = null,
                                          JsonSerializerSettings jsonSerializerSettings = null)
 {
     graph.ShouldNotBeNull("graph");
     return(JsonConvert.SerializeObject(graph, formatting ?? Formatting.None,
                                        jsonSerializerSettings ?? DefaultJsonSerializerSettings));
 }
Exemple #3
0
        /// <summary>
        /// A general-purpose serializer. Serializes the given value using the formatting, and optionally - a type. If no
        /// formatting is given, the formatting defined in Settings is used.
        /// </summary>
        public string Serialize(object value, Formatting?formatting = null, bool ignoreNulls = false)
        {
            var _formatting = formatting ?? (_PrettyPrint ? Indented : None);
            var settings    = ignoreNulls ? SettingsIgnoreNulls : Settings;

            return(JsonConvert.SerializeObject(value, _formatting, settings));
        }
Exemple #4
0
        public Mocking(
            string description        = null,
            Action <string> logAction = null,
            Formatting?logFormatting  = null)
        {
            _random = new Random();
            _moq    = new Mock <TMoq>();

            description ??= typeof(TMoq).Name;
            var log = logAction ?? Mocking.LogAction ?? (message => Trace.WriteLine(message));

            LogFormatting = logFormatting ?? Mocking.LogFormatting;

            void PrefixedLogAction(string message) => log($"{"ARRANGE",-10}{description}: {message}");

            Dictionary <string, object> mockingContext = new Dictionary <string, object>();

            _setup = new TMockingSetup
            {
                LogFormatting  = LogFormatting,
                MockingContext = mockingContext,
                Moq            = _moq,
                LogAction      = PrefixedLogAction
            };

            _verification = new TMockingVerification
            {
                LogFormatting  = LogFormatting,
                MockingContext = mockingContext,
                Moq            = _moq,
                LogAction      = PrefixedLogAction
            };
        }
Exemple #5
0
        internal virtual void SerializeInternal(JsonWriter jsonWriter, object value)
        {
            ValidationUtils.ArgumentNotNull((object)jsonWriter, "jsonWriter");
            Formatting?nullable1 = new Formatting?();

            if (this._formatting.HasValue)
            {
                Formatting formatting = jsonWriter.Formatting;
                Formatting?nullable2  = this._formatting;
                if ((formatting != nullable2.GetValueOrDefault() ? 1 : (!nullable2.HasValue ? 1 : 0)) != 0)
                {
                    nullable1             = new Formatting?(jsonWriter.Formatting);
                    jsonWriter.Formatting = this._formatting.Value;
                }
            }
            DateFormatHandling?nullable3 = new DateFormatHandling?();

            if (this._dateFormatHandling.HasValue)
            {
                DateFormatHandling dateFormatHandling = jsonWriter.DateFormatHandling;
                DateFormatHandling?nullable2          = this._dateFormatHandling;
                if ((dateFormatHandling != nullable2.GetValueOrDefault() ? 1 : (!nullable2.HasValue ? 1 : 0)) != 0)
                {
                    nullable3 = new DateFormatHandling?(jsonWriter.DateFormatHandling);
                    jsonWriter.DateFormatHandling = this._dateFormatHandling.Value;
                }
            }
            DateTimeZoneHandling?nullable4 = new DateTimeZoneHandling?();

            if (this._dateTimeZoneHandling.HasValue)
            {
                DateTimeZoneHandling timeZoneHandling = jsonWriter.DateTimeZoneHandling;
                DateTimeZoneHandling?nullable2        = this._dateTimeZoneHandling;
                if ((timeZoneHandling != nullable2.GetValueOrDefault() ? 1 : (!nullable2.HasValue ? 1 : 0)) != 0)
                {
                    nullable4 = new DateTimeZoneHandling?(jsonWriter.DateTimeZoneHandling);
                    jsonWriter.DateTimeZoneHandling = this._dateTimeZoneHandling.Value;
                }
            }
            new JsonSerializerInternalWriter(this).Serialize(jsonWriter, value);
            if (nullable1.HasValue)
            {
                jsonWriter.Formatting = nullable1.Value;
            }
            if (nullable3.HasValue)
            {
                jsonWriter.DateFormatHandling = nullable3.Value;
            }
            if (!nullable4.HasValue)
            {
                return;
            }
            jsonWriter.DateTimeZoneHandling = nullable4.Value;
        }
        public static string SerializeObject(this object value, Formatting?formatting = null, JsonSerializerSettings serializerSettings = null)
        {
            if (value == null)
            {
                return(null);
            }

            formatting         = formatting ?? Formatting.None;
            serializerSettings = serializerSettings ?? JsonSerializerSettings;

            return(JsonConvert.SerializeObject(value, formatting.Value, serializerSettings));
        }
Exemple #7
0
        internal MemoryStream SerializeStream(object entity, Formatting?formatting = null, bool ignoreNulls = false)
        {
            var _formatting = formatting ?? (_PrettyPrint ? Indented : None);
            var serializer  = ignoreNulls ? SerializerIgnoreNulls : Serializer;
            var stream      = new MemoryStream();

            using (var swr = new StreamWriter(stream, UTF8, 1024, true))
                using (var jwr = new RESTarJsonWriter(swr, 0))
                {
                    jwr.Formatting = _formatting;
                    serializer.Serialize(jwr, entity);
                }
            return(stream);
        }
        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;
            }

            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;
            }
        }
Exemple #9
0
 public static string fromObjectToJson <T>(this T entity, Formatting?formatting      = null,
                                           JsonSerializerSettings serializerSettings = null)
     where T : class
 {
     if (formatting.isNotNull() && serializerSettings.isNotNull())
     {
         return(JsonConvert.SerializeObject(entity, formatting.Value, serializerSettings));
     }
     if (formatting.isNotNull() && serializerSettings.isNull())
     {
         return(JsonConvert.SerializeObject(entity, formatting.Value));
     }
     if (formatting.isNull() && serializerSettings.isNotNull())
     {
         return(JsonConvert.SerializeObject(entity, serializerSettings));
     }
     return(JsonConvert.SerializeObject(entity));
 }
Exemple #10
0
        /// <summary>
        /// 将对象返序列化成字符串
        /// </summary>
        /// <param name="obj">对象</param>
        /// <param name="formatting">时间格式</param>
        /// <param name="settings">返序列化设置</param>
        /// <returns>json 字符串</returns>
        public static string Serialize(object obj, Formatting?formatting = null)
        {
            string jsonStr = "";

            if (obj != null)
            {
                JsonSerializerSettings jsetting = new JsonSerializerSettings();

                //空值
                jsetting.NullValueHandling = NullValueHandling.Ignore;

                //GUID
                jsetting.Converters.Add(new GuidConverter());

                //时间
                IsoDateTimeConverter timeFormat = new IsoDateTimeConverter();
                timeFormat.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
                jsetting.Converters.Add(timeFormat);

                try
                {
                    if (formatting == null)
                    {
                        jsonStr = JsonConvert.SerializeObject(obj, jsetting);
                    }
                    else
                    {
                        jsonStr = JsonConvert.SerializeObject(obj, formatting.Value, jsetting);
                    }
                }
                catch (Exception ex) {
                    var cc = ex;
                }
            }
            return(jsonStr);
        }
        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(traceJsonWriter ?? 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;
            }
        }
Exemple #12
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;
            }
        }
Exemple #13
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;
            }
        }
Exemple #14
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;
        }
Exemple #15
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;
            }
        }
 protected internal virtual JsonSerializerSettings CreateJsonSerializerSettings(IContractResolver contractResolver, Formatting?formatting, NullValueHandling?nullValueHandling)
 {
     return(new JsonSerializerSettings
     {
         ContractResolver = contractResolver ?? this.DefaultJsonContractResolver,
         Formatting = formatting ?? Formatting.Indented,
         NullValueHandling = nullValueHandling ?? NullValueHandling.Ignore
     });
 }
Exemple #17
0
        public virtual string ToJson(JsonSerializerSettings?settings = null, Type?serializeAsType = null, Formatting?formatting = null)
        {
            var config = ResolveConfiguration(settings);

            return(JsonConvert.SerializeObject(this, serializeAsType ?? GetType(), formatting ?? config.Formatting, config));
        }
Exemple #18
0
        public static string Serialize(this JsonSerializer jsonSerializer, object value, Formatting?formatting = Formatting.Indented)
        {
            var sb = new StringBuilder(256);
            var sw = new StringWriter(sb, CultureInfo.InvariantCulture);

            using (var jsonWriter = new JsonTextWriter(sw))
            {
                jsonWriter.Formatting = formatting ?? jsonSerializer.Formatting;

                jsonSerializer.Serialize(jsonWriter, value);
            }

            return(sw.ToString());
        }
        public virtual string ToJson(IContractResolver contractResolver = null, Formatting?formatting = null, NullValueHandling?nullValueHandling = null)
        {
            var settings = this.CreateJsonSerializerSettings(contractResolver, formatting, nullValueHandling);

            return(JsonConvert.SerializeObject(this, settings));
        }
Exemple #20
0
        public static JToken SerializeToJToken(this JsonSerializer serializer, object value, Formatting?formatting = null, JsonSerializerSettings settings = null,
                                               bool dontUseConverter = false, bool enableXmlAttributePrefix = false)
        {
            JsonConverter conv = null;

            if (!dontUseConverter)
            {
                Type vt = value != null?value.GetType() : typeof(object);

                var convName = GetTypeConverterName(vt);
                conv = serializer.Converters.Where(c => c.GetType().Name == convName || (c.GetType().IsGenericType&& c.GetType().GetGenericArguments()[0] == vt)).FirstOrDefault();
                if (conv == null && ChoJSONConvertersCache.IsInitialized)
                {
                    if (ChoJSONConvertersCache.Contains(convName))
                    {
                        conv = ChoJSONConvertersCache.Get(convName);
                    }
                    else if (ChoJSONConvertersCache.Contains(vt))
                    {
                        conv = ChoJSONConvertersCache.Get(vt);
                    }
                }
            }

            if (value != null)
            {
                if (!value.GetType().IsSimple())
                {
                    bool disableImplcityOp = false;
                    if (ChoTypeDescriptor.GetTypeAttribute <ChoTurnOffImplicitOpsAttribute>(value.GetType()) != null)
                    {
                        disableImplcityOp = ChoTypeDescriptor.GetTypeAttribute <ChoTurnOffImplicitOpsAttribute>(value.GetType()).Flag;
                    }

                    if (!disableImplcityOp)
                    {
                        Type to = null;
                        if (value.GetType().CanCastToPrimitiveType(out to))
                        {
                            value = ChoConvert.ConvertTo(value, to);
                        }
                        else if (value.GetType().GetImplicitTypeCastBackOps().Any())
                        {
                            var castTypes = value.GetType().GetImplicitTypeCastBackOps();

                            foreach (var ct in castTypes)
                            {
                                try
                                {
                                    value = ChoConvert.ConvertTo(value, ct);
                                    break;
                                }
                                catch { }
                            }
                        }
                    }
                }
            }

            JToken t = null;

            if (settings != null)
            {
                if (conv != null)
                {
                    settings.Converters.Add(conv);
                }
            }
            if (formatting == null)
            {
                formatting = serializer.Formatting;
            }

            if (settings != null && settings.Context.Context == null && enableXmlAttributePrefix)
            {
                settings.Context = new System.Runtime.Serialization.StreamingContext(System.Runtime.Serialization.StreamingContextStates.All, new ChoDynamicObject());
                dynamic ctx = settings.Context.Context;
                ctx.EnableXmlAttributePrefix = enableXmlAttributePrefix;
            }

            if (conv != null)
            {
                t = JToken.Parse(JsonConvert.SerializeObject(value, formatting.Value, conv));
            }
            else if (settings != null)
            {
                t = JToken.Parse(JsonConvert.SerializeObject(value, formatting.Value, settings));
            }
            else
            {
                t = JToken.FromObject(value, serializer);
            }
            return(t);
        }