6
6
7
7
namespace GitCredentialManager ;
8
8
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
+
9
33
public abstract class Trace2Message
10
34
{
11
35
private const int SourceColumnMaxWidth = 23 ;
12
36
private const string NormalPerfTimeFormat = "HH:mm:ss.ffffff" ;
13
37
14
38
protected const string EmptyPerformanceSpan = "| | | | " ;
15
- protected static readonly JsonSerializerOptions JsonSerializerOptions = new ( )
16
- {
17
- PropertyNameCaseInsensitive = true ,
18
- Converters = { new JsonStringEnumConverter ( new SnakeCaseNamingPolicy ( ) ) }
19
- } ;
20
39
21
40
[ JsonPropertyName ( "event" ) ]
22
41
[ JsonPropertyOrder ( 1 ) ]
@@ -194,7 +213,7 @@ public class VersionMessage : Trace2Message
194
213
195
214
public override string ToJson ( )
196
215
{
197
- return JsonSerializer . Serialize ( this , JsonSerializerOptions ) ;
216
+ return JsonSerializer . Serialize ( this , Trace2JsonSerializerContext . Default . VersionMessage ) ;
198
217
}
199
218
200
219
public override string ToNormalString ( )
@@ -230,7 +249,7 @@ public class StartMessage : Trace2Message
230
249
231
250
public override string ToJson ( )
232
251
{
233
- return JsonSerializer . Serialize ( this , JsonSerializerOptions ) ;
252
+ return JsonSerializer . Serialize ( this , Trace2JsonSerializerContext . Default . StartMessage ) ;
234
253
}
235
254
236
255
public override string ToNormalString ( )
@@ -266,7 +285,7 @@ public class ExitMessage : Trace2Message
266
285
267
286
public override string ToJson ( )
268
287
{
269
- return JsonSerializer . Serialize ( this , JsonSerializerOptions ) ;
288
+ return JsonSerializer . Serialize ( this , Trace2JsonSerializerContext . Default . ExitMessage ) ;
270
289
}
271
290
272
291
public override string ToNormalString ( )
@@ -314,7 +333,7 @@ public class ChildStartMessage : Trace2Message
314
333
315
334
public override string ToJson ( )
316
335
{
317
- return JsonSerializer . Serialize ( this , JsonSerializerOptions ) ;
336
+ return JsonSerializer . Serialize ( this , Trace2JsonSerializerContext . Default . ChildStartMessage ) ;
318
337
}
319
338
320
339
public override string ToNormalString ( )
@@ -371,7 +390,7 @@ public class ChildExitMessage : Trace2Message
371
390
372
391
public override string ToJson ( )
373
392
{
374
- return JsonSerializer . Serialize ( this , JsonSerializerOptions ) ;
393
+ return JsonSerializer . Serialize ( this , Trace2JsonSerializerContext . Default . ChildExitMessage ) ;
375
394
}
376
395
377
396
public override string ToNormalString ( )
@@ -415,7 +434,7 @@ public class ErrorMessage : Trace2Message
415
434
416
435
public override string ToJson ( )
417
436
{
418
- return JsonSerializer . Serialize ( this , JsonSerializerOptions ) ;
437
+ return JsonSerializer . Serialize ( this , Trace2JsonSerializerContext . Default . ErrorMessage ) ;
419
438
}
420
439
421
440
public override string ToNormalString ( )
@@ -473,7 +492,7 @@ public class RegionEnterMessage : RegionMessage
473
492
{
474
493
public override string ToJson ( )
475
494
{
476
- return JsonSerializer . Serialize ( this , JsonSerializerOptions ) ;
495
+ return JsonSerializer . Serialize ( this , Trace2JsonSerializerContext . Default . RegionEnterMessage ) ;
477
496
}
478
497
479
498
public override string ToNormalString ( )
@@ -504,7 +523,7 @@ public class RegionLeaveMessage : RegionMessage
504
523
505
524
public override string ToJson ( )
506
525
{
507
- return JsonSerializer . Serialize ( this , JsonSerializerOptions ) ;
526
+ return JsonSerializer . Serialize ( this , Trace2JsonSerializerContext . Default . RegionLeaveMessage ) ;
508
527
}
509
528
510
529
public override string ToNormalString ( )
@@ -527,9 +546,3 @@ protected override string GetEventMessage(Trace2FormatTarget formatTarget)
527
546
return Message ;
528
547
}
529
548
}
530
-
531
- public class SnakeCaseNamingPolicy : JsonNamingPolicy
532
- {
533
- public override string ConvertName ( string name ) =>
534
- name . ToSnakeCase ( ) ;
535
- }
0 commit comments