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