public static void SerializeObjectJson(this object obj, StreamWriter writer, JsonObjectSerializationOptions options) { using (JsonWriter jsonWriter = new JsonTextWriter(writer)) { var serializer = new JsonSerializer { NullValueHandling = options.SerializeNullProperties ? NullValueHandling.Include : NullValueHandling.Ignore, Formatting = options.IndentOutput ? Newtonsoft.Json.Formatting.Indented : Newtonsoft.Json.Formatting.None }; if (options.SerializeEnumsAsStrings) { serializer.Converters.Add(new StringEnumConverter()); } if (options.UseIso8601DateFormatting) { serializer.Converters.Add(new IsoDateTimeConverter()); } serializer.Serialize(jsonWriter, obj); } }
public static string ToHash <T>(this T obj) { var jsonOptions = new JsonObjectSerializationOptions { SerializeNullProperties = false, IndentOutput = false, SerializeEnumsAsStrings = false, }; var json = obj.SerializeObjectJson(jsonOptions); return(ToSha1Hash(json)); }
public static string ToHash <T>(this IEnumerable <T> objectCollection) { var jsonOptions = new JsonObjectSerializationOptions { SerializeNullProperties = false, IndentOutput = false, SerializeEnumsAsStrings = false, }; return(objectCollection .Select(node => node.SerializeObjectJson(jsonOptions)) .Aggregate(string.Empty, (finalHash, json) => ToSha1Hash(finalHash + json))); }
public static string SerializeObjectJson(this object obj, JsonObjectSerializationOptions options) { var settings = new JsonSerializerSettings() { NullValueHandling = options.SerializeNullProperties ? NullValueHandling.Include : NullValueHandling.Ignore, Formatting = options.IndentOutput ? Newtonsoft.Json.Formatting.Indented : Newtonsoft.Json.Formatting.None }; if (options.SerializeEnumsAsStrings) { settings.Converters.Add(new StringEnumConverter()); } if (options.UseIso8601DateFormatting) { settings.Converters.Add(new IsoDateTimeConverter()); } return(JsonConvert.SerializeObject(obj, settings)); }