///------------------------------------------------------------------------------------------------- /// <summary> /// Serializes the given value. /// </summary> /// /// <remarks> /// Anwar Javed, 09/24/2013 9:37 AM. /// </remarks> /// /// <exception cref="SerializationException"> /// Thrown when a Serialization error condition occurs. /// </exception> /// /// <param name="value"> /// The value. /// </param> /// <param name="mode"> /// (optional) the mode. /// </param> /// <param name="nullValue"> /// (optional) the null value. /// </param> /// /// <returns> /// . /// </returns> ///------------------------------------------------------------------------------------------------- public string Serialize(object value, SerializationMode mode = SerializationMode.None, ValueHandlingMode nullValue = ValueHandlingMode.Ignore) { try { JsonSerializerSettings settings = new JsonSerializerSettings() { Formatting = Formatting.Indented, NullValueHandling = NullValueHandling.Ignore, ReferenceLoopHandling = ReferenceLoopHandling.Ignore, }; settings.Converters.Add(new GuidConverter()); settings.Converters.Add(new StringEnumConverter()); switch (mode) { case SerializationMode.Compact: settings.Formatting = Formatting.None; break; } switch (nullValue) { case ValueHandlingMode.Include: settings.NullValueHandling = NullValueHandling.Include; break; } return(JsonConvert.SerializeObject(value, settings)); } catch (Exception exception) { throw new SerializationException(exception.Message, exception); } }
///------------------------------------------------------------------------------------------------- /// <summary> /// Serializes the given value. /// </summary> /// /// <remarks> /// Anwar Javed, 09/24/2013 9:38 AM. /// </remarks> /// /// <typeparam name="T"> /// Generic type parameter. /// </typeparam> /// <param name="value"> /// The value. /// </param> /// <param name="mode"> /// (optional) the mode. /// </param> /// <param name="nullValue"> /// (optional) the null value. /// </param> /// /// <returns> /// . /// </returns> ///------------------------------------------------------------------------------------------------- public string Serialize <T>(T value, SerializationMode mode = SerializationMode.None, ValueHandlingMode nullValue = ValueHandlingMode.Ignore) { return(this.Serialize((object)value, mode, nullValue)); }
///------------------------------------------------------------------------------------------------- /// <summary> /// Serializes the given value. /// </summary> /// /// <remarks> /// Anwar Javed, 09/24/2013 9:38 AM. /// </remarks> /// /// <param name="value"> /// The value. /// </param> /// <param name="mode"> /// (optional) the mode. /// </param> /// <param name="nullValue"> /// (optional) the null value. /// </param> /// /// <returns> /// . /// </returns> ///------------------------------------------------------------------------------------------------- public string Serialize(object value, SerializationMode mode = SerializationMode.None, ValueHandlingMode nullValue = ValueHandlingMode.Ignore) { if (value != null) { var saveOptions = SaveOptions.OmitDuplicateNamespaces; switch (mode) { case SerializationMode.Compact: saveOptions |= SaveOptions.DisableFormatting; break; } XDocument document = new XDocument(); document.Declaration = new XDeclaration("1.0", "utf-8", null); document.AddFirst(BuildRoot(value)); StringBuilder builder = new StringBuilder(); using (TextWriter writer = new Framework.IO.StringWriter(Encoding.UTF8, builder)) { document.Save(writer, saveOptions); } return(builder.ToString()); } return(string.Empty); }