public static string Serialize <T>(T obj) { var serializer = new YamlDotNet.Serialization.SerializerBuilder() // .WithNamingConvention(CamelCaseNamingConvention.Instance) .Build(); var yaml = serializer.Serialize(obj); return(yaml); }
public static string ToYaml <T>(this T obj) { if (obj == null) { return(null); } var serializer = new YamlDotNet.Serialization.SerializerBuilder() .WithTypeConverter(new SystemTypeTypeConverter()) .Build(); return(serializer.Serialize(obj)); }
public static void WriteConfig(string outputFile, Dictionary <string, object> settingsOverride) { var deserializer = new YamlDotNet.Serialization.DeserializerBuilder() .Build(); var configYaml = File.ReadAllText(DefaultConfigFile); var config = deserializer.Deserialize <Dictionary <string, object> >(configYaml); foreach (var s in settingsOverride) { config[s.Key] = s.Value; } var serializer = new YamlDotNet.Serialization.SerializerBuilder() .WithEventEmitter(next => new FlowStyleIntegerSequences(next)) .Build(); string newConfigYaml = null; newConfigYaml = serializer.Serialize(config); Directory.CreateDirectory(Path.GetDirectoryName(outputFile)); File.WriteAllText(outputFile, newConfigYaml); }
public static void WriteHardResume(string dateFolder, Resume resume) { ResumeFiles files = new ResumeFiles(dateFolder); string ymlPath = files.HardResume; // write to json string jsonDCircle = JsonConvert.SerializeObject( resume, new JsonSerializerSettings() { ReferenceLoopHandling = ReferenceLoopHandling.Ignore, Formatting = Formatting.Indented, ContractResolver = new DefaultContractResolver { NamingStrategy = new CamelCaseNamingStrategy() } } ); string jsonPath = ymlPath.Replace("yml", "json"); Resume resumeDCircle = JsonConvert.DeserializeObject <Resume>(jsonDCircle); ResumeDTO parsed = parseResume(resumeDCircle); string json = JsonConvert.SerializeObject( parsed, new JsonSerializerSettings() { ReferenceLoopHandling = ReferenceLoopHandling.Ignore, Formatting = Formatting.Indented, ContractResolver = new DefaultContractResolver { NamingStrategy = new CamelCaseNamingStrategy() } } ); using (StreamWriter w = new StreamWriter(jsonPath)) { w.Write(json); Console.WriteLine("##############################"); Console.WriteLine($"JSON wrote at {jsonPath}"); } //write to yml var serializer = new YamlDotNet.Serialization.SerializerBuilder() .DisableAliases() .Build(); string yaml; using (StringWriter w = new StringWriter()) { serializer.Serialize(w, parsed); yaml = w.ToString(); } using (StreamWriter w2 = new StreamWriter(ymlPath)) { w2.Write(yaml); Console.WriteLine("##############################"); Console.WriteLine($"YML wrote at {ymlPath}"); } // write to javascript string javascript = "exports.hardResume = " + json; string jsPath = files.JavaScriptPath; Console.WriteLine(jsPath); using (StreamWriter w3 = new StreamWriter(jsPath)) { w3.Write(javascript); Console.WriteLine("##############################"); Console.WriteLine($"JS wrote at {jsPath}"); } }