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