/// <summary> /// Serialises this object /// </summary> /// <param name="serializationType">The serialisation format.</param> /// <param name="pretty">Pretty print.</param> /// <returns>The serialised data.</returns> public string Serialize(ConfigSerializationType serializationType = ConfigSerializationType.Json, bool pretty = false) { switch (serializationType) { case ConfigSerializationType.Json: return(JsonConvert.SerializeObject(this, pretty ? Formatting.Indented : Formatting.None)); case ConfigSerializationType.Yaml: return(new SerializerBuilder().Build().Serialize(this)); default: throw new Exception("Only YAML and JSON serialization supported!"); } }
/// <summary> /// Serialises a given object using the passed serialisation type. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="obj"></param> /// <param name="serializationType"></param> /// <returns>The serialised object.</returns> public static string Serialize <T>(this T obj, ConfigSerializationType serializationType = ConfigSerializationType.Yaml) { switch (serializationType) { case ConfigSerializationType.Yaml: return(new SerializerBuilder().WithNamingConvention(new UnderscoredNamingConvention()).Build().Serialize(obj)); case ConfigSerializationType.Json: return(JsonConvert.SerializeObject(obj, Formatting.Indented)); case ConfigSerializationType.XML: return(XmlSerializer.SerializeToString(obj)); default: throw new ArgumentOutOfRangeException(nameof(serializationType), "Invalid serialization type!"); } }
public string ToString(ConfigSerializationType serializationType = ConfigSerializationType.Yaml) => throw new NotImplementedException();