Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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)));
        }
Esempio n. 4
0
        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));
        }