using System; using System.Collections.Generic; using System.Text; using System.Xml.Serialization; using System.IO; using System.Reflection; namespace Darwinbots3 { public class Configuration { string moduleFolderPath; public string ModuleFolderPath { get { return moduleFolderPath; } set { moduleFolderPath = value; } } public Configuration() { // Set defaults moduleFolderPath = Directory.GetCurrentDirectory(); // ("/Modules") maybe? } #region Configuration persistence though an XML file private string filePath; public static Configuration LoadFromFile(string filePath) { XmlSerializer serializer = new XmlSerializer(typeof(Configuration)); using (TextReader tr = new StreamReader(filePath)) { Configuration config = (Configuration)serializer.Deserialize(tr); config.filePath = filePath; return config; } } public static void SaveToFile(Configuration data, string filePath) { DirectoryInfo directory = new DirectoryInfo(Path.GetDirectoryName(filePath)); if (directory.Exists == false) directory.Create(); XmlSerializer serializer = new XmlSerializer(typeof(Configuration)); using (TextWriter tw = new StreamWriter(filePath)) { serializer.Serialize(tw, data); } } public void SaveAs(String filePath) { this.filePath = filePath; Configuration.SaveToFile(this, filePath); } public void Save() { Configuration.SaveToFile(this, filePath); } #endregion } }