using System; using System.IO; namespace sharp.json { public class FileBackedJSONValue { public string FileName { get; set; } public DateTime LoadedWriteTime { get; set; } T current; JSON jsource; public FileBackedJSONValue(string filename) { FileName = filename; } public T CurrentValue { get { if (!File.Exists(FileName)){ current = default(T); } else if ((current == null) || (File.GetLastWriteTime(FileName) != LoadedWriteTime)) { jsource = JSON.ReadFrom(FileName); LoadedWriteTime = File.GetLastWriteTime(FileName); current = jsource.To(); } return current; } set { current = value; Save(); } } public void Save(){ JSONConverter.From(current).WriteTo(FileName,true); LoadedWriteTime = File.GetLastWriteTime(FileName); } } }