6
6
7
7
namespace GitCredentialManager ;
8
8
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
+
9
43
public abstract class Trace2Message
10
44
{
11
45
private const int SourceColumnMaxWidth = 23 ;
12
46
private const string NormalPerfTimeFormat = "HH:mm:ss.ffffff" ;
13
47
14
48
protected const string EmptyPerformanceSpan = "| | | | " ;
15
- protected static readonly JsonSerializerOptions JsonSerializerOptions = new ( )
16
- {
17
- PropertyNameCaseInsensitive = true ,
18
- Converters = { new JsonStringEnumConverter ( new SnakeCaseNamingPolicy ( ) ) }
19
- } ;
20
49
21
50
[ JsonPropertyName ( "event" ) ]
22
51
[ JsonPropertyOrder ( 1 ) ]
@@ -194,7 +223,7 @@ public class VersionMessage : Trace2Message
194
223
195
224
public override string ToJson ( )
196
225
{
197
- return JsonSerializer . Serialize ( this , JsonSerializerOptions ) ;
226
+ return JsonSerializer . Serialize ( this , Trace2JsonSerializerContext . Default . VersionMessage ) ;
198
227
}
199
228
200
229
public override string ToNormalString ( )
@@ -230,7 +259,7 @@ public class StartMessage : Trace2Message
230
259
231
260
public override string ToJson ( )
232
261
{
233
- return JsonSerializer . Serialize ( this , JsonSerializerOptions ) ;
262
+ return JsonSerializer . Serialize ( this , Trace2JsonSerializerContext . Default . StartMessage ) ;
234
263
}
235
264
236
265
public override string ToNormalString ( )
@@ -266,7 +295,7 @@ public class ExitMessage : Trace2Message
266
295
267
296
public override string ToJson ( )
268
297
{
269
- return JsonSerializer . Serialize ( this , JsonSerializerOptions ) ;
298
+ return JsonSerializer . Serialize ( this , Trace2JsonSerializerContext . Default . ExitMessage ) ;
270
299
}
271
300
272
301
public override string ToNormalString ( )
@@ -314,7 +343,7 @@ public class ChildStartMessage : Trace2Message
314
343
315
344
public override string ToJson ( )
316
345
{
317
- return JsonSerializer . Serialize ( this , JsonSerializerOptions ) ;
346
+ return JsonSerializer . Serialize ( this , Trace2JsonSerializerContext . Default . ChildStartMessage ) ;
318
347
}
319
348
320
349
public override string ToNormalString ( )
@@ -371,7 +400,7 @@ public class ChildExitMessage : Trace2Message
371
400
372
401
public override string ToJson ( )
373
402
{
374
- return JsonSerializer . Serialize ( this , JsonSerializerOptions ) ;
403
+ return JsonSerializer . Serialize ( this , Trace2JsonSerializerContext . Default . ChildExitMessage ) ;
375
404
}
376
405
377
406
public override string ToNormalString ( )
@@ -415,7 +444,7 @@ public class ErrorMessage : Trace2Message
415
444
416
445
public override string ToJson ( )
417
446
{
418
- return JsonSerializer . Serialize ( this , JsonSerializerOptions ) ;
447
+ return JsonSerializer . Serialize ( this , Trace2JsonSerializerContext . Default . ErrorMessage ) ;
419
448
}
420
449
421
450
public override string ToNormalString ( )
@@ -473,7 +502,7 @@ public class RegionEnterMessage : RegionMessage
473
502
{
474
503
public override string ToJson ( )
475
504
{
476
- return JsonSerializer . Serialize ( this , JsonSerializerOptions ) ;
505
+ return JsonSerializer . Serialize ( this , Trace2JsonSerializerContext . Default . RegionEnterMessage ) ;
477
506
}
478
507
479
508
public override string ToNormalString ( )
@@ -504,7 +533,7 @@ public class RegionLeaveMessage : RegionMessage
504
533
505
534
public override string ToJson ( )
506
535
{
507
- return JsonSerializer . Serialize ( this , JsonSerializerOptions ) ;
536
+ return JsonSerializer . Serialize ( this , Trace2JsonSerializerContext . Default . RegionLeaveMessage ) ;
508
537
}
509
538
510
539
public override string ToNormalString ( )
@@ -527,9 +556,3 @@ protected override string GetEventMessage(Trace2FormatTarget formatTarget)
527
556
return Message ;
528
557
}
529
558
}
530
-
531
- public class SnakeCaseNamingPolicy : JsonNamingPolicy
532
- {
533
- public override string ConvertName ( string name ) =>
534
- name . ToSnakeCase ( ) ;
535
- }
0 commit comments