refactor: json serialization

* move all converters to `App.JsonCodeGen.cs`
* use `ColorConverter` instead of parsing colors manually
This commit is contained in:
leo 2024-07-08 16:45:51 +08:00
parent 16d9b627f0
commit 7ee3db500a
No known key found for this signature in database
5 changed files with 64 additions and 50 deletions

View file

@ -80,14 +80,12 @@ namespace SourceGit.ViewModels
}
}
[JsonConverter(typeof(FontFamilyConverter))]
public FontFamily DefaultFont
{
get => _defaultFont;
set => SetProperty(ref _defaultFont, value);
}
[JsonConverter(typeof(FontFamilyConverter))]
public FontFamily MonospaceFont
{
get => _monospaceFont;
@ -517,18 +515,4 @@ namespace SourceGit.ViewModels
private AvaloniaList<RepositoryNode> _repositoryNodes = new AvaloniaList<RepositoryNode>();
}
public class FontFamilyConverter : JsonConverter<FontFamily>
{
public override FontFamily Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
var name = reader.GetString();
return new FontFamily(name);
}
public override void Write(Utf8JsonWriter writer, FontFamily value, JsonSerializerOptions options)
{
writer.WriteStringValue(value.ToString());
}
}
}