Skip to content

Commit 9daad9c

Browse files
committed
Restore HealthReportSerializer, but use the shared HealthReportConverter
1 parent c5c5364 commit 9daad9c

1 file changed

Lines changed: 34 additions & 0 deletions

File tree

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
using System.Text.Json;
2+
using System.Text.Json.Serialization;
3+
4+
namespace Microsoft.Extensions.Diagnostics.HealthChecks.ApplicationInsights;
5+
6+
public static class HealthReportSerializer
7+
{
8+
private static readonly JsonSerializerOptions __options = CreateJsonSerializerOptions();
9+
10+
private static JsonSerializerOptions CreateJsonSerializerOptions()
11+
{
12+
var options = new JsonSerializerOptions
13+
{
14+
DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull,
15+
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
16+
PropertyNameCaseInsensitive = true,
17+
MaxDepth = 100
18+
};
19+
20+
options.Converters.Add(new JsonStringEnumConverter());
21+
options.Converters.Add(new HealthReportConverter());
22+
23+
return options;
24+
}
25+
26+
public static string Serialize(HealthReport report)
27+
=> JsonSerializer.Serialize(report, __options);
28+
29+
public static Task SerializeAsync(HealthReport report, Stream stream, CancellationToken cancellationToken = default)
30+
=> JsonSerializer.SerializeAsync(stream, report, __options, cancellationToken);
31+
32+
public static HealthReport Deserialize(string json)
33+
=> JsonSerializer.Deserialize<HealthReport>(json, __options)!;
34+
}

0 commit comments

Comments
 (0)