/// <summary> /// Writes the settings into a file. /// </summary> /// <param name="filePath">Filepath of the settings file</param> public void Save(string filePath) { IniData ini = new IniData(); foreach (var mapper in mappers) { ini.AddSection(mapper.Key, mapper.Value.ToDictionary()); } Dictionary <string, string> generalSettings = new Dictionary <string, string>(); generalSettings["Language"] = LanguageManager.getInstance().Language; ini.AddSection("General", generalSettings); File.WriteAllText(filePath, ini.Serialize()); }
public static IniData Deserialize(StreamReader sr) { var ini = new IniData(); // 0 readsectionheader // 1 readsectiondata int state = 0; string line; string sectionHeader = null; Dictionary <string, string> data = new Dictionary <string, string>(); for (int linecount = 1; (line = sr.ReadLine()) != null; linecount++) { if (string.IsNullOrWhiteSpace(line)) { continue; } line = removeComment(line); if (string.IsNullOrWhiteSpace(line)) { continue; } switch (state) { case 0: sectionHeader = readSectionHeader(line); state = 1; break; case 1: if (line[0] == '[') { ini.AddSection(sectionHeader, data); data = new Dictionary <string, string>(); sectionHeader = readSectionHeader(line); } else { var valuePair = readValue(line); data.Add(valuePair.Key, valuePair.Value); } break; default: throw new InvalidOperationException(); } } ini.AddSection(sectionHeader, data); return(ini); }