66
77namespace GitCredentialManager ;
88
9+ public class JsonSnakeCaseEnumConverter : JsonStringEnumConverter
10+ {
11+ public JsonSnakeCaseEnumConverter ( )
12+ : base ( JsonNamingPolicy . SnakeCaseLower , false ) { }
13+ }
14+
15+ [ JsonSourceGenerationOptions (
16+ PropertyNamingPolicy = JsonKnownNamingPolicy . SnakeCaseLower ,
17+ PropertyNameCaseInsensitive = true ,
18+ Converters = new [ ] { typeof ( JsonSnakeCaseEnumConverter ) }
19+ ) ]
20+ [ JsonSerializable ( typeof ( VersionMessage ) ) ]
21+ [ JsonSerializable ( typeof ( StartMessage ) ) ]
22+ [ JsonSerializable ( typeof ( ExitMessage ) ) ]
23+ [ JsonSerializable ( typeof ( ExitMessage ) ) ]
24+ [ JsonSerializable ( typeof ( ChildStartMessage ) ) ]
25+ [ JsonSerializable ( typeof ( ChildExitMessage ) ) ]
26+ [ JsonSerializable ( typeof ( ErrorMessage ) ) ]
27+ [ JsonSerializable ( typeof ( RegionEnterMessage ) ) ]
28+ [ JsonSerializable ( typeof ( RegionLeaveMessage ) ) ]
29+ internal partial class Trace2JsonSerializerContext : JsonSerializerContext
30+ {
31+ }
32+
933public abstract class Trace2Message
1034{
1135 private const int SourceColumnMaxWidth = 23 ;
1236 private const string NormalPerfTimeFormat = "HH:mm:ss.ffffff" ;
1337
1438 protected const string EmptyPerformanceSpan = "| | | | " ;
15- protected static readonly JsonSerializerOptions JsonSerializerOptions = new ( )
16- {
17- PropertyNameCaseInsensitive = true ,
18- Converters = { new JsonStringEnumConverter ( new SnakeCaseNamingPolicy ( ) ) }
19- } ;
2039
2140 [ JsonPropertyName ( "event" ) ]
2241 [ JsonPropertyOrder ( 1 ) ]
@@ -194,7 +213,7 @@ public class VersionMessage : Trace2Message
194213
195214 public override string ToJson ( )
196215 {
197- return JsonSerializer . Serialize ( this , JsonSerializerOptions ) ;
216+ return JsonSerializer . Serialize ( this , Trace2JsonSerializerContext . Default . VersionMessage ) ;
198217 }
199218
200219 public override string ToNormalString ( )
@@ -230,7 +249,7 @@ public class StartMessage : Trace2Message
230249
231250 public override string ToJson ( )
232251 {
233- return JsonSerializer . Serialize ( this , JsonSerializerOptions ) ;
252+ return JsonSerializer . Serialize ( this , Trace2JsonSerializerContext . Default . StartMessage ) ;
234253 }
235254
236255 public override string ToNormalString ( )
@@ -266,7 +285,7 @@ public class ExitMessage : Trace2Message
266285
267286 public override string ToJson ( )
268287 {
269- return JsonSerializer . Serialize ( this , JsonSerializerOptions ) ;
288+ return JsonSerializer . Serialize ( this , Trace2JsonSerializerContext . Default . ExitMessage ) ;
270289 }
271290
272291 public override string ToNormalString ( )
@@ -314,7 +333,7 @@ public class ChildStartMessage : Trace2Message
314333
315334 public override string ToJson ( )
316335 {
317- return JsonSerializer . Serialize ( this , JsonSerializerOptions ) ;
336+ return JsonSerializer . Serialize ( this , Trace2JsonSerializerContext . Default . ChildStartMessage ) ;
318337 }
319338
320339 public override string ToNormalString ( )
@@ -371,7 +390,7 @@ public class ChildExitMessage : Trace2Message
371390
372391 public override string ToJson ( )
373392 {
374- return JsonSerializer . Serialize ( this , JsonSerializerOptions ) ;
393+ return JsonSerializer . Serialize ( this , Trace2JsonSerializerContext . Default . ChildExitMessage ) ;
375394 }
376395
377396 public override string ToNormalString ( )
@@ -415,7 +434,7 @@ public class ErrorMessage : Trace2Message
415434
416435 public override string ToJson ( )
417436 {
418- return JsonSerializer . Serialize ( this , JsonSerializerOptions ) ;
437+ return JsonSerializer . Serialize ( this , Trace2JsonSerializerContext . Default . ErrorMessage ) ;
419438 }
420439
421440 public override string ToNormalString ( )
@@ -473,7 +492,7 @@ public class RegionEnterMessage : RegionMessage
473492{
474493 public override string ToJson ( )
475494 {
476- return JsonSerializer . Serialize ( this , JsonSerializerOptions ) ;
495+ return JsonSerializer . Serialize ( this , Trace2JsonSerializerContext . Default . RegionEnterMessage ) ;
477496 }
478497
479498 public override string ToNormalString ( )
@@ -504,7 +523,7 @@ public class RegionLeaveMessage : RegionMessage
504523
505524 public override string ToJson ( )
506525 {
507- return JsonSerializer . Serialize ( this , JsonSerializerOptions ) ;
526+ return JsonSerializer . Serialize ( this , Trace2JsonSerializerContext . Default . RegionLeaveMessage ) ;
508527 }
509528
510529 public override string ToNormalString ( )
@@ -527,9 +546,3 @@ protected override string GetEventMessage(Trace2FormatTarget formatTarget)
527546 return Message ;
528547 }
529548}
530-
531- public class SnakeCaseNamingPolicy : JsonNamingPolicy
532- {
533- public override string ConvertName ( string name ) =>
534- name . ToSnakeCase ( ) ;
535- }
0 commit comments