ripple-tool / Ripple-Data / Base / RippleObjectData.cs
RippleObjectData.cs
Raw
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();

        }
    }
}