fix: save DalamudConfiguration with full type information

This commit is contained in:
goaaats 2021-10-20 17:38:09 +02:00
parent 6f04f771e9
commit 913b0f157c
No known key found for this signature in database
GPG key ID: F18F057873895461

View file

@ -16,6 +16,13 @@ namespace Dalamud.Configuration.Internal
[Serializable]
internal sealed class DalamudConfiguration
{
private static readonly JsonSerializerSettings SerializerSettings = new()
{
TypeNameHandling = TypeNameHandling.All,
TypeNameAssemblyFormatHandling = TypeNameAssemblyFormatHandling.Full,
Formatting = Formatting.Indented,
};
[JsonIgnore]
private string configPath;
@ -238,7 +245,7 @@ namespace Dalamud.Configuration.Internal
DalamudConfiguration deserialized;
try
{
deserialized = JsonConvert.DeserializeObject<DalamudConfiguration>(File.ReadAllText(path));
deserialized = JsonConvert.DeserializeObject<DalamudConfiguration>(File.ReadAllText(path), SerializerSettings);
}
catch (Exception ex)
{
@ -256,7 +263,7 @@ namespace Dalamud.Configuration.Internal
/// </summary>
public void Save()
{
File.WriteAllText(this.configPath, JsonConvert.SerializeObject(this, Formatting.Indented));
File.WriteAllText(this.configPath, JsonConvert.SerializeObject(this, SerializerSettings));
this.DalamudConfigurationSaved?.Invoke(this);
}
}