using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml.Serialization; namespace Tango.SQLExaminer { public abstract class ExaminerSerializedObject where T : class { public static T FromFile(String filePath) { return FromString(File.ReadAllText(filePath)); } public static T FromString(String xml) { XmlSerializer f = new XmlSerializer(typeof(T), ""); T config = null; using (var reader = new StringReader(xml)) { config = f.Deserialize(reader) as T; } return config; } public void ToFile(String filePath) { File.WriteAllText(filePath, ToXml(), Encoding.Unicode); } public String ToXml() { XmlSerializerNamespaces ns = new XmlSerializerNamespaces(); ns.Add("", ""); XmlSerializer f = new XmlSerializer(typeof(T), ""); String result = String.Empty; using (var st = new StringWriter()) { f.Serialize(st, this, ns); result = st.ToString(); } return result; } } }