Initial Commit
This commit is contained in:
25
PatchProbe.Shared/Serialization/PayloadSerializer.cs
Normal file
25
PatchProbe.Shared/Serialization/PayloadSerializer.cs
Normal file
@@ -0,0 +1,25 @@
|
||||
using System.Text.Json;
|
||||
using System.Text.Json.Serialization;
|
||||
using PatchProbe.Shared.Models;
|
||||
|
||||
namespace PatchProbe.Shared.Serialization;
|
||||
|
||||
public static class PayloadSerializer
|
||||
{
|
||||
public static readonly JsonSerializerOptions Options = new()
|
||||
{
|
||||
WriteIndented = true,
|
||||
DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull,
|
||||
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
|
||||
Converters = { new JsonStringEnumConverter(JsonNamingPolicy.CamelCase) }
|
||||
};
|
||||
|
||||
public static string Serialize(PatchProbePayload payload) =>
|
||||
JsonSerializer.Serialize(payload, Options);
|
||||
|
||||
public static async Task SerializeToFileAsync(PatchProbePayload payload, string path, CancellationToken cancellationToken = default)
|
||||
{
|
||||
await using var stream = File.Create(path);
|
||||
await JsonSerializer.SerializeAsync(stream, payload, Options, cancellationToken);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user