internal static FileEntry ToFile <T>(FileKind kind, T value) { var filename = FileEntry.GetFilenameForKind(kind); string output; if (Utilities.IsYamlFile(filename)) { StringWriter tw = new StringWriter(); YamlPocoSerializer.CanonicalWrite(tw, value); output = tw.ToString(); } else { var jsonStr = JsonSerializer.Serialize(value, Utilities._jsonOpts); output = JsonNormalizer.Normalize(jsonStr); } var bytes = Encoding.UTF8.GetBytes(output); return(new FileEntry { Name = filename, RawBytes = bytes }); }
public T ToObject <T>() { if (Utilities.IsYamlFile(_fullpath)) { using (var textReader = new StreamReader(_fullpath)) { var obj = YamlPocoSerializer.Read <T>(textReader); return(obj); } } else { var str = File.ReadAllText(_fullpath); return(JsonSerializer.Deserialize <T>(str, Utilities._jsonOpts)); } }
private static T ToObject <T>(ZipArchiveEntry entry) { if (entry.Name.EndsWith(".yaml", StringComparison.OrdinalIgnoreCase)) { using (var stream = entry.Open()) using (var textReader = new StreamReader(stream)) { var obj = YamlPocoSerializer.Read <T>(textReader); return(obj); } } else { var je = entry.ToJson(); return(je.ToObject <T>()); } }
public void WriteAllJson <T>(string subdir, FilePath filename, T obj) { if (Utilities.IsYamlFile(filename)) { using (var tw = new StringWriter()) { YamlPocoSerializer.CanonicalWrite(tw, obj); WriteAllText(subdir, filename, tw.ToString()); } } else { var text = JsonSerializer.Serialize <T>(obj, Utilities._jsonOpts); text = JsonNormalizer.Normalize(text); WriteAllText(subdir, filename, text); } }