Skip to content

Commit 62ce1e5

Browse files
committed
添加类型自序列化逻辑
1 parent a6a4906 commit 62ce1e5

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

src/MediaConverters/MediaConverters.Tool/Contexts/ImageConvertContext.cs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System.Collections.Generic;
2-
using System.Text.Json.Serialization;
2+
using System.Text.Json;
3+
using System.Text.Json.Serialization.Metadata;
34

45
namespace DotNetCampus.MediaConverters.Contexts;
56

@@ -11,4 +12,14 @@ public class ImageConvertContext
1112
public bool? UseAreaSizeLimit { get; init; }
1213

1314
public List<IImageConvertTask>? ImageConvertTaskList { get; init; }
15+
16+
public string ToJsonText()
17+
{
18+
return JsonSerializer.Serialize(this, typeof(ImageConvertContext), MediaConverterJsonSerializerSourceGenerationContext.Default);
19+
}
20+
21+
public static ImageConvertContext? FromJsonText(string jsonText)
22+
{
23+
return JsonSerializer.Deserialize<ImageConvertContext>(jsonText, MediaConverterJsonSerializerSourceGenerationContext.Default.ImageConvertContext);
24+
}
1425
}

src/MediaConverters/MediaConverters.Tool/Contexts/MediaConverterJsonSerializerSourceGenerationContext.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1-
using System.Text.Json.Serialization;
1+
using System.Text.Json;
2+
using System.Text.Json.Serialization;
23

34
namespace DotNetCampus.MediaConverters.Contexts;
45

5-
[JsonSourceGenerationOptions(WriteIndented = true)]
6+
[JsonSourceGenerationOptions(WriteIndented = true,
7+
DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull)]
68
[JsonSerializable(typeof(ReplaceColorInfo))]
79
[JsonSerializable(typeof(SetDuotoneEffectTask))]
810
[JsonSerializable(typeof(SetBlackWhiteEffectTask))]

0 commit comments

Comments
 (0)