using Newtonsoft.Json.Converters; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Ripple_Data.Base.Actors; using Ripple_Data.Control; namespace Ripple_Data.Base { public class RippleObjectData { public string Output { get; } JsonSerializer serializer = new JsonSerializer(); public RippleObjectData() { serializer.PreserveReferencesHandling = PreserveReferencesHandling.All; serializer.TypeNameHandling = TypeNameHandling.All; serializer.ReferenceLoopHandling = ReferenceLoopHandling.Ignore; serializer.Formatting = Formatting.Indented; serializer.Converters.Add(new KeyValuePairConverter()); serializer.NullValueHandling = NullValueHandling.Ignore; serializer.DefaultValueHandling = DefaultValueHandling.Ignore; StringBuilder sb = new StringBuilder(); StringWriter sw = new StringWriter(sb); using (JsonWriter writer = new JsonTextWriter(sw)) { serializer.Serialize(writer, IIdentifyable.GetAllObjects()); } Output = sw.ToString(); } } }