66
77namespace GitCredentialManager ;
88
9+ public class Trace2EventEnumConverter : JsonStringEnumConverter < Trace2Event >
10+ {
11+ public Trace2EventEnumConverter ( )
12+ : base ( JsonNamingPolicy . SnakeCaseLower , false ) { }
13+ }
14+
15+ public class Trace2ProcessClassEnumConverter : JsonStringEnumConverter < Trace2ProcessClass >
16+ {
17+ public Trace2ProcessClassEnumConverter ( )
18+ : base ( JsonNamingPolicy . SnakeCaseLower , false ) { }
19+ }
20+
21+ [ JsonSourceGenerationOptions (
22+ PropertyNamingPolicy = JsonKnownNamingPolicy . SnakeCaseLower ,
23+ PropertyNameCaseInsensitive = true ,
24+ Converters = new [ ]
25+ {
26+ typeof ( Trace2EventEnumConverter ) ,
27+ typeof ( Trace2ProcessClassEnumConverter )
28+ }
29+ ) ]
30+ [ JsonSerializable ( typeof ( VersionMessage ) ) ]
31+ [ JsonSerializable ( typeof ( StartMessage ) ) ]
32+ [ JsonSerializable ( typeof ( ExitMessage ) ) ]
33+ [ JsonSerializable ( typeof ( ExitMessage ) ) ]
34+ [ JsonSerializable ( typeof ( ChildStartMessage ) ) ]
35+ [ JsonSerializable ( typeof ( ChildExitMessage ) ) ]
36+ [ JsonSerializable ( typeof ( ErrorMessage ) ) ]
37+ [ JsonSerializable ( typeof ( RegionEnterMessage ) ) ]
38+ [ JsonSerializable ( typeof ( RegionLeaveMessage ) ) ]
39+ internal partial class Trace2JsonSerializerContext : JsonSerializerContext
40+ {
41+ }
42+
943public abstract class Trace2Message
1044{
1145 private const int SourceColumnMaxWidth = 23 ;
1246 private const string NormalPerfTimeFormat = "HH:mm:ss.ffffff" ;
1347
1448 protected const string EmptyPerformanceSpan = "| | | | " ;
15- protected static readonly JsonSerializerOptions JsonSerializerOptions = new ( )
16- {
17- PropertyNameCaseInsensitive = true ,
18- Converters = { new JsonStringEnumConverter ( new SnakeCaseNamingPolicy ( ) ) }
19- } ;
2049
2150 [ JsonPropertyName ( "event" ) ]
2251 [ JsonPropertyOrder ( 1 ) ]
@@ -194,7 +223,7 @@ public class VersionMessage : Trace2Message
194223
195224 public override string ToJson ( )
196225 {
197- return JsonSerializer . Serialize ( this , JsonSerializerOptions ) ;
226+ return JsonSerializer . Serialize ( this , Trace2JsonSerializerContext . Default . VersionMessage ) ;
198227 }
199228
200229 public override string ToNormalString ( )
@@ -230,7 +259,7 @@ public class StartMessage : Trace2Message
230259
231260 public override string ToJson ( )
232261 {
233- return JsonSerializer . Serialize ( this , JsonSerializerOptions ) ;
262+ return JsonSerializer . Serialize ( this , Trace2JsonSerializerContext . Default . StartMessage ) ;
234263 }
235264
236265 public override string ToNormalString ( )
@@ -266,7 +295,7 @@ public class ExitMessage : Trace2Message
266295
267296 public override string ToJson ( )
268297 {
269- return JsonSerializer . Serialize ( this , JsonSerializerOptions ) ;
298+ return JsonSerializer . Serialize ( this , Trace2JsonSerializerContext . Default . ExitMessage ) ;
270299 }
271300
272301 public override string ToNormalString ( )
@@ -314,7 +343,7 @@ public class ChildStartMessage : Trace2Message
314343
315344 public override string ToJson ( )
316345 {
317- return JsonSerializer . Serialize ( this , JsonSerializerOptions ) ;
346+ return JsonSerializer . Serialize ( this , Trace2JsonSerializerContext . Default . ChildStartMessage ) ;
318347 }
319348
320349 public override string ToNormalString ( )
@@ -371,7 +400,7 @@ public class ChildExitMessage : Trace2Message
371400
372401 public override string ToJson ( )
373402 {
374- return JsonSerializer . Serialize ( this , JsonSerializerOptions ) ;
403+ return JsonSerializer . Serialize ( this , Trace2JsonSerializerContext . Default . ChildExitMessage ) ;
375404 }
376405
377406 public override string ToNormalString ( )
@@ -415,7 +444,7 @@ public class ErrorMessage : Trace2Message
415444
416445 public override string ToJson ( )
417446 {
418- return JsonSerializer . Serialize ( this , JsonSerializerOptions ) ;
447+ return JsonSerializer . Serialize ( this , Trace2JsonSerializerContext . Default . ErrorMessage ) ;
419448 }
420449
421450 public override string ToNormalString ( )
@@ -473,7 +502,7 @@ public class RegionEnterMessage : RegionMessage
473502{
474503 public override string ToJson ( )
475504 {
476- return JsonSerializer . Serialize ( this , JsonSerializerOptions ) ;
505+ return JsonSerializer . Serialize ( this , Trace2JsonSerializerContext . Default . RegionEnterMessage ) ;
477506 }
478507
479508 public override string ToNormalString ( )
@@ -504,7 +533,7 @@ public class RegionLeaveMessage : RegionMessage
504533
505534 public override string ToJson ( )
506535 {
507- return JsonSerializer . Serialize ( this , JsonSerializerOptions ) ;
536+ return JsonSerializer . Serialize ( this , Trace2JsonSerializerContext . Default . RegionLeaveMessage ) ;
508537 }
509538
510539 public override string ToNormalString ( )
@@ -527,9 +556,3 @@ protected override string GetEventMessage(Trace2FormatTarget formatTarget)
527556 return Message ;
528557 }
529558}
530-
531- public class SnakeCaseNamingPolicy : JsonNamingPolicy
532- {
533- public override string ConvertName ( string name ) =>
534- name . ToSnakeCase ( ) ;
535- }
0 commit comments