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
            });
        }
Exemple #2
0
 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);
     }
 }