public void Save(string fileName = null, bool macroDirRelative = false) { Directory.CreateDirectory(MacroDirectory); if (fileName == null) { var dialog = new SaveFileDialog { DefaultExt = "xml", Filter = "Macro files|*.xml|All files|*.*", FileName = "Macro.xml", InitialDirectory = MacroDirectory, }; if (dialog.ShowDialog() != true) { return; } fileName = dialog.FileName; } else if (macroDirRelative) { fileName = Path.Combine(MacroDirectory, fileName); } XMLConverter.ToXML(this).Save(fileName); }
void OkClick(object sender, RoutedEventArgs e) { if (DBConnectInfo == null) { return; } XMLConverter.ToXML(DBConnectInfos.ToList()).Save(dbConfigFile); result = new Result { DBConnectInfo = DBConnectInfo }; DialogResult = true; }
public void XMLConverterTest() { var test1 = new XMLConverterDerived { Int1 = 1, Int2 = default(int), IntNullable1 = 2, IntNullable2 = null, ByteArray1 = new byte[] { 45, 57 }, ByteArray3 = null, IntArray1 = new int[] { 500, 600 }, IntArray3 = null, IntList1 = new List <int> { 500, 600 }, IntList3 = null, Regex1 = new Regex("Pattern", RegexOptions.Compiled | RegexOptions.IgnoreCase), Regex3 = null, SubClass1 = new XMLConverterBase { Int1 = 3 }, SubClass2 = new XMLConverterDerived { Int1 = 4 }, SubClass3 = null, Children = new List <XMLConverterBase> { new XMLConverterBase { Int1 = 5 }, new XMLConverterDerived { Int1 = 6 }, null }, Generic = new XMLConverterGenericDerived <float?> { Val1 = 5.5F, Val2 = null, Dict1 = new Dictionary <string, float?> { ["Test1"] = 5.4F, ["Test2"] = 5.6F, }, Dict3 = null, }, Exporter = new XMLConverterCustomExporter { MyStr = "Test string" }, }; test1.ByteArray2 = test1.ByteArray1; test1.IntArray2 = test1.IntArray1; test1.IntList2 = test1.IntList1; test1.Regex2 = test1.Regex1; test1.Generic.Dict2 = test1.Generic.Dict1; test1.Self = test1; var xml = XMLConverter.ToXML(test1); var test2 = XMLConverter.FromXML <XMLConverterBase>(xml) as XMLConverterDerived; Assert.IsNotNull(test1); Assert.IsNotNull(test2); Assert.AreEqual(test1.Int1, test2.Int1); Assert.AreEqual(test1.Int2, test2.Int2); Assert.AreEqual(test1.IntNullable1, test2.IntNullable1); Assert.IsNull(test1.IntNullable2); Assert.IsNull(test2.IntNullable2); Assert.AreEqual(test1.ByteArray1.Length, test2.ByteArray1.Length); Assert.AreEqual(test1.ByteArray1[0], test2.ByteArray1[0]); Assert.AreEqual(test1.ByteArray1[1], test2.ByteArray1[1]); Assert.AreEqual(test1.ByteArray1, test1.ByteArray2); Assert.AreEqual(test2.ByteArray1, test2.ByteArray2); Assert.IsNull(test1.ByteArray3); Assert.IsNull(test2.ByteArray3); Assert.AreEqual(test1.IntArray1.Length, test2.IntArray1.Length); Assert.AreEqual(test1.IntArray1[0], test2.IntArray1[0]); Assert.AreEqual(test1.IntArray1[1], test2.IntArray1[1]); Assert.AreEqual(test1.IntArray1, test1.IntArray2); Assert.AreEqual(test2.IntArray1, test2.IntArray2); Assert.IsNull(test1.IntArray3); Assert.IsNull(test2.IntArray3); Assert.AreEqual(test1.IntList1.Count, test2.IntList1.Count); Assert.AreEqual(test1.IntList1[0], test2.IntList1[0]); Assert.AreEqual(test1.IntList1[1], test2.IntList1[1]); Assert.AreEqual(test1.IntList1, test1.IntList2); Assert.AreEqual(test2.IntList1, test2.IntList2); Assert.IsNull(test1.IntList3); Assert.IsNull(test2.IntList3); Assert.AreEqual(test1.Regex1.ToString(), test2.Regex1.ToString()); Assert.AreEqual(test1.Regex1.Options, test2.Regex1.Options); Assert.AreEqual(test1.Regex1, test1.Regex2); Assert.AreEqual(test2.Regex1, test2.Regex2); Assert.IsNull(test1.Regex3); Assert.IsNull(test2.Regex3); Assert.AreEqual(test1.SubClass1.GetType(), test2.SubClass1.GetType()); Assert.AreEqual(test1.SubClass2.GetType(), test2.SubClass2.GetType()); Assert.AreEqual(test1.SubClass1.Int1, test2.SubClass1.Int1); Assert.AreEqual(test1.SubClass2.Int1, test2.SubClass2.Int1); Assert.IsNull(test1.SubClass3); Assert.IsNull(test2.SubClass3); Assert.AreEqual(test1.Children[0].GetType(), test2.Children[0].GetType()); Assert.AreEqual(test1.Children[1].GetType(), test2.Children[1].GetType()); Assert.AreEqual(test1.Children.Count, test2.Children.Count); Assert.AreEqual(test1.Children[0].Int1, test2.Children[0].Int1); Assert.AreEqual(test1.Children[1].Int1, test2.Children[1].Int1); Assert.AreEqual(test1.Children[2], test2.Children[2]); Assert.AreEqual(test1.Generic.GetType(), test2.Generic.GetType()); Assert.AreEqual(test1.Generic.Val1, test2.Generic.Val1); Assert.AreEqual(test1.Generic.Val2, test2.Generic.Val2); Assert.AreEqual(test1.Generic.Dict1.Count, test2.Generic.Dict1.Count); Assert.AreEqual(test1.Generic.Dict1.ContainsKey("Test1"), test2.Generic.Dict1.ContainsKey("Test1")); Assert.AreEqual(test1.Generic.Dict1.ContainsKey("Test2"), test2.Generic.Dict1.ContainsKey("Test2")); Assert.AreEqual(test1.Generic.Dict1.ContainsKey("Test3"), test2.Generic.Dict1.ContainsKey("Test3")); Assert.AreEqual(test1.Generic.Dict1["Test1"], test2.Generic.Dict1["Test1"]); Assert.AreEqual(test1.Generic.Dict1["Test2"], test2.Generic.Dict1["Test2"]); Assert.AreEqual(test1.Generic.Dict1, test1.Generic.Dict2); Assert.AreEqual(test2.Generic.Dict1, test2.Generic.Dict2); Assert.IsNull(test1.Generic.Dict3); Assert.IsNull(test2.Generic.Dict3); Assert.AreEqual(test1.Exporter.MyStr, test2.Exporter.MyStr); Assert.AreEqual(test1, test1.Self); Assert.AreEqual(test2, test2.Self); }