Пример #1
0
        //Serializer and deserializer.
        public void SaveData(bool isExport)
        {
            var JsonSettings = new JsonSerializerSettings
            {
                Formatting            = Formatting.Indented,
                TypeNameHandling      = TypeNameHandling.Auto,
                ReferenceLoopHandling = ReferenceLoopHandling.Serialize
            };
            string savepath = "";

            if (isExport)
            {
                savepath = ModPath + @"/Export/tags/";
            }
            else
            {
                savepath = ModPath + @"/tags/";
            }
            DefaultJsonSettings.Initialize();
            try
            {
                if (!Directory.Exists(savepath))
                {
                    Directory.CreateDirectory(savepath);
                }
                JsonSerializer serializer = JsonSerializer.Create(JsonSettings);
                using (StreamWriter sw = new StreamWriter(savepath + $"{this.CustomId}.json"))
                    using (JsonWriter writer = new JsonTextWriter(sw))
                    {
                        serializer.Serialize(writer, this);
                    }
            }
            catch (Exception e)
            {
                Main.Mod.Log($"Error processing {this.CustomId}");
#if (DEBUG)
                Main.Mod.Log(e.StackTrace);
#endif
                throw e;
            }
        }
Пример #2
0
 public void Serialize <T>(TextWriter writer, T obj)
 {
     DefaultJsonSettings.Initialize();
     writer.Write(JsonConvert.SerializeObject(obj, Formatting.Indented));
 }
Пример #3
0
 public T Deserialize <T>(TextReader reader)
 {
     DefaultJsonSettings.Initialize();
     return(JsonConvert.DeserializeObject <T>(reader.ReadToEnd()));
 }