refactor settings load/save
- load using LINUQ - load on child settings on demond - prevent error when plugin has been removed - prevent settings loose when plugin has been removed
This commit is contained in:
@@ -97,27 +97,33 @@ public class SettingsManager : ISettingsManager
|
||||
Instance.Reset();
|
||||
}
|
||||
|
||||
protected virtual ISettings CreateInstance()
|
||||
{
|
||||
return new Settings();
|
||||
}
|
||||
|
||||
protected virtual void CreateNewInstance()
|
||||
{
|
||||
defaultInstance = new Settings();
|
||||
defaultInstance = CreateInstance();
|
||||
defaultInstance.Reset();
|
||||
}
|
||||
|
||||
protected virtual void LoadInternal()
|
||||
{
|
||||
defaultInstance = JsonConvert.DeserializeObject<Settings>(File.ReadAllText(ConfigFilePath), CreateJsonSerializerSettings());
|
||||
defaultInstance = CreateInstance();
|
||||
defaultInstance.Load(CreateJsonSerializerSettings(), File.ReadAllText(ConfigFilePath));
|
||||
}
|
||||
|
||||
protected virtual void SaveInternal()
|
||||
{
|
||||
SavingSettings?.Invoke(this, EventArgs.Empty);
|
||||
File.WriteAllText(ConfigFilePath, JsonConvert.SerializeObject(defaultInstance, CreateJsonSerializerSettings()));
|
||||
File.WriteAllText(ConfigFilePath, defaultInstance.Save(CreateJsonSerializerSettings()));
|
||||
SavedSettings?.Invoke(this, EventArgs.Empty);
|
||||
}
|
||||
|
||||
protected virtual JsonSerializerSettings CreateJsonSerializerSettings()
|
||||
public virtual JsonSerializerSettings CreateJsonSerializerSettings()
|
||||
{
|
||||
return new JsonSerializerSettings()
|
||||
return new JsonSerializerSettings
|
||||
{
|
||||
Formatting = Formatting.Indented,
|
||||
TypeNameHandling = TypeNameHandling.Auto,
|
||||
|
||||
Reference in New Issue
Block a user