11using ElectronNET . API . Entities ;
2+ using Newtonsoft . Json ;
23using System ;
3- using System . Text . Json ;
4- using System . Text . Json . Serialization ;
54
65namespace ElectronNET . Converter ;
76
87public class TitleBarOverlayConverter : JsonConverter < TitleBarOverlay >
98{
10- public override TitleBarOverlay Read ( ref Utf8JsonReader reader , Type typeToConvert , JsonSerializerOptions options )
9+ public override TitleBarOverlay ReadJson ( JsonReader reader , Type objectType , TitleBarOverlay existingValue , bool hasExistingValue , JsonSerializer serializer )
1110 {
12- return reader . TokenType switch
11+ if ( reader . TokenType == JsonToken . Boolean )
1312 {
14- JsonTokenType . True => true ,
15- JsonTokenType . False => false ,
16- JsonTokenType . StartObject => JsonSerializer . Deserialize < TitleBarOverlay > ( ref reader , options ) ,
17- _ => throw new JsonException ( "Invalid value for TitleBarOverlay. Expected true or false." ) ,
18- } ;
13+ return ( bool ) reader . Value ;
14+ }
15+ else if ( reader . TokenType == JsonToken . StartObject )
16+ {
17+ return serializer . Deserialize < TitleBarOverlay > ( reader ) ;
18+ }
19+ else
20+ {
21+ throw new JsonSerializationException ( "Invalid value for TitleBarOverlay. Expected true, false, or an object." ) ;
22+ }
1923 }
2024
21- public override void Write ( Utf8JsonWriter writer , TitleBarOverlay value , JsonSerializerOptions options )
25+ public override void WriteJson ( JsonWriter writer , TitleBarOverlay value , JsonSerializer serializer )
2226 {
2327 if ( value is null )
2428 {
25- writer . WriteNullValue ( ) ;
29+ writer . WriteNull ( ) ;
2630 return ;
2731 }
28-
2932 var @bool = ( bool ? ) value ;
3033 if ( @bool . HasValue )
3134 {
32- writer . WriteBooleanValue ( @bool . Value ) ;
35+ writer . WriteValue ( @bool . Value ) ;
3336 }
3437 else
3538 {
36- JsonSerializer . Serialize ( writer , value , options ) ;
39+ serializer . Serialize ( writer , value ) ;
3740 }
3841 }
3942}
0 commit comments