/// <summary>
        /// Writes the JSON representation of the object.
        /// </summary>
        /// <param name="writer">The <see cref="T:Newtonsoft.Json.JsonWriter"/> to write to.</param><param name="value">The value.</param><param name="serializer">The calling serializer.</param>
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            InfoAccumulator info = value as InfoAccumulator;;

            writer.WriteStartObject();
            writer.WritePropertyName("errors");
            serializer.Serialize(writer, info.GetErrors());
            writer.WritePropertyName("warnings");
            serializer.Serialize(writer, info.GetWarning());
            writer.WritePropertyName("infos");
            serializer.Serialize(writer, info.GetInfo());
            writer.WritePropertyName("exceptions");
            serializer.Serialize(writer, info.GetExceptions());
            writer.WriteEndObject();
        }