Skip to content

Commit 942d27c

Browse files
committed
Use JsonSerializerContext for metadata
1 parent 27ea5e7 commit 942d27c

File tree

3 files changed

+23
-6
lines changed

3 files changed

+23
-6
lines changed

src/ImageWizard.Core/Caches/DistributedCache.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// https://github.com/usercode/ImageWizard
33
// MIT License
44

5+
using ImageWizard.Core.Json;
56
using Microsoft.Extensions.Caching.Distributed;
67
using System.Text.Json;
78

@@ -43,7 +44,7 @@ private static string GetMetaKey(string key)
4344
return null;
4445
}
4546

46-
Metadata? metadata = JsonSerializer.Deserialize<Metadata>(json);
47+
Metadata? metadata = JsonSerializer.Deserialize(json, ImageWizardJsonSerializerContext.Default.Metadata);
4748

4849
if (metadata == null)
4950
{
@@ -65,7 +66,7 @@ private static string GetMetaKey(string key)
6566

6667
public async Task WriteAsync(IMetadata metadata, Stream stream)
6768
{
68-
byte[] json = JsonSerializer.SerializeToUtf8Bytes(metadata);
69+
byte[] json = JsonSerializer.SerializeToUtf8Bytes(metadata, ImageWizardJsonSerializerContext.Default.Metadata);
6970

7071
await Cache.SetAsync(GetMetaKey(metadata.Key), json);
7172

src/ImageWizard.Core/Caches/Files/FileCache.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
// MIT License
44

55
using ImageWizard.Cleanup;
6+
using ImageWizard.Core.Json;
67
using Microsoft.AspNetCore.Hosting;
78
using Microsoft.Extensions.Options;
89
using System.Text.Json;
@@ -14,8 +15,6 @@ namespace ImageWizard.Caches;
1415
/// </summary>
1516
public class FileCache : ICache, ICleanupCache, ILastAccessCache
1617
{
17-
protected static readonly JsonSerializerOptions JsonSerializerOptions = new JsonSerializerOptions() { WriteIndented = true };
18-
1918
public FileCache(IOptions<FileCacheOptions> options, IWebHostEnvironment hostingEnvironment, ICacheLock cacheLock)
2019
{
2120
Options = options;
@@ -114,7 +113,7 @@ public virtual async Task WriteAsync(IMetadata metadata, Stream stream)
114113

115114
using Stream metadataStream = metaFile.OpenRead();
116115

117-
Metadata? metadata = await JsonSerializer.DeserializeAsync<Metadata>(metadataStream, JsonSerializerOptions);
116+
Metadata? metadata = await JsonSerializer.DeserializeAsync(metadataStream, ImageWizardJsonSerializerContext.Default.Metadata);
118117

119118
return metadata;
120119
}
@@ -134,7 +133,7 @@ private async Task WriteMetadataAsync(IMetadata metadata)
134133
//delete existing data
135134
metadataStream.SetLength(0);
136135

137-
await JsonSerializer.SerializeAsync(metadataStream, metadata, JsonSerializerOptions);
136+
await JsonSerializer.SerializeAsync(metadataStream, metadata, ImageWizardJsonSerializerContext.Default.Metadata);
138137
}
139138

140139
private void Delete(IMetadata metadata)
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
// Copyright (c) usercode
2+
// https://github.com/usercode/ImageWizard
3+
// MIT License
4+
5+
using System.Text.Json;
6+
using System.Text.Json.Serialization;
7+
8+
namespace ImageWizard.Core.Json;
9+
10+
[JsonSerializable(typeof(Metadata))]
11+
12+
//defaults
13+
[JsonSourceGenerationOptions(JsonSerializerDefaults.Web, WriteIndented = true)]
14+
public partial class ImageWizardJsonSerializerContext : JsonSerializerContext
15+
{
16+
17+
}

0 commit comments

Comments
 (0)