diff --git a/Mystify/Mystify.csproj b/Mystify/Mystify.csproj
index da7d086..3155621 100644
--- a/Mystify/Mystify.csproj
+++ b/Mystify/Mystify.csproj
@@ -25,5 +25,6 @@
+
diff --git a/Mystify/Settings/SettingsManager.cs b/Mystify/Settings/SettingsManager.cs
index 7b877ca..698f310 100644
--- a/Mystify/Settings/SettingsManager.cs
+++ b/Mystify/Settings/SettingsManager.cs
@@ -4,8 +4,8 @@
using System;
using System.IO;
-using System.Xml;
-using System.Xml.Serialization;
+using Lib.Xml;
+using Lib.Xml.Interfaces;
using Mystify.Settings.Interfaces;
using Mystify.Settings.Xml;
@@ -16,34 +16,20 @@ namespace Mystify.Settings
private const string SETTINGS_FILE_EXTENSION = "mys";
private readonly string _settingsFilePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Mystify", $"Settings.{SETTINGS_FILE_EXTENSION}");
+ private readonly IXmlReader _xmlReader;
+ private readonly IXmlWriter _xmlWriter;
+
private ISettings? _settings;
- public ISettings Settings => _settings ??= Load();
-
- public void Save()
- {
- FileStream file = File.OpenWrite(_settingsFilePath);
-
- XmlWriter xmlWriter = XmlWriter.Create(file, new XmlWriterSettings {Indent = true});
- XmlSerializer xmlSerializer = new(typeof(XmlSettings));
-
- XmlSerializerNamespaces xmlSerializerNamespaces = new();
- xmlSerializerNamespaces.Add("", "");
-
- xmlSerializer.Serialize(xmlWriter, Settings, xmlSerializerNamespaces);
- }
-
- private ISettings Load()
+ public SettingsManager()
{
- if (!File.Exists(_settingsFilePath))
- return new XmlSettings();
-
- FileStream file = File.OpenRead(_settingsFilePath);
-
- XmlReader xmlReader = XmlReader.Create(file);
- XmlSerializer xmlSerializer = new(typeof(XmlSettings));
-
- return (XmlSettings?) xmlSerializer.Deserialize(xmlReader) ?? new XmlSettings();
+ _xmlReader = new XmlReader();
+ _xmlWriter = new XmlWriter();
}
+
+ public ISettings Settings => _settings ??= Load();
+
+ public void Save() => _xmlWriter.Write(Settings, _settingsFilePath);
+ private ISettings Load() => _xmlReader.Read(_settingsFilePath);
}
}
\ No newline at end of file