using System;
using System.Linq;
using Newtonsoft.Json;
namespace MLEM.Data.Json {
///
/// A helper class that stores all of the types that are part of MLEM.Data.
///
public class JsonConverters {
///
/// An array of all of the s that are part of MLEM.Data
///
public static readonly JsonConverter[] Converters = typeof(JsonConverters).Assembly.GetExportedTypes()
.Where(t => t.IsSubclassOf(typeof(JsonConverter)))
.Select(t => t.GetConstructor(Type.EmptyTypes).Invoke(null)).Cast().ToArray();
///
/// Adds all of the objects that are part of MLEM.Data to the given
///
/// The serializer to add the converters to
/// The given serializer, for chaining
public static JsonSerializer AddAll(JsonSerializer serializer) {
foreach (var converter in Converters)
serializer.Converters.Add(converter);
return serializer;
}
}
}