|
4 | 4 |
|
5 | 5 | namespace OmniSharp.Extensions.JsonRpc.Serialization.Converters |
6 | 6 | { |
7 | | - internal class EnumLikeStringConverter : JsonConverter<IEnumLikeString> |
| 7 | + internal class EnumLikeStringConverter : JsonConverter<IEnumLikeString?> |
8 | 8 | { |
9 | | - public override void WriteJson(JsonWriter writer, IEnumLikeString value, JsonSerializer serializer) => new JValue(value.ToString()).WriteTo(writer); |
| 9 | + public override void WriteJson(JsonWriter writer, IEnumLikeString? value, JsonSerializer serializer) |
| 10 | + { |
| 11 | + new JValue(value?.ToString()).WriteTo(writer); |
| 12 | + } |
10 | 13 |
|
11 | | - public override IEnumLikeString ReadJson( |
12 | | - JsonReader reader, Type objectType, IEnumLikeString existingValue, |
| 14 | + public override IEnumLikeString? ReadJson( |
| 15 | + JsonReader reader, Type objectType, IEnumLikeString? existingValue, |
13 | 16 | bool hasExistingValue, |
14 | 17 | JsonSerializer serializer |
15 | | - ) => |
16 | | - ( reader.TokenType, Nullable.GetUnderlyingType(objectType) ) switch { |
17 | | - (JsonToken.String, null) => (IEnumLikeString) Activator.CreateInstance(objectType, (string) reader.Value), |
18 | | - (JsonToken.String, { } realType) => (IEnumLikeString) Activator.CreateInstance(realType, (string) reader.Value), |
19 | | - (_, { }) => (IEnumLikeString) Activator.CreateInstance(objectType, null), |
| 18 | + ) |
| 19 | + { |
| 20 | + return ( reader.TokenType, Nullable.GetUnderlyingType(objectType) ) switch |
| 21 | + { |
| 22 | + (JsonToken.String, null) => (IEnumLikeString)Activator.CreateInstance(objectType, (string)reader.Value), |
| 23 | + (JsonToken.String, { } realType) => (IEnumLikeString)Activator.CreateInstance(realType, (string)reader.Value), |
| 24 | + (_, { }) => (IEnumLikeString)Activator.CreateInstance(objectType, null), |
20 | 25 | _ => null |
21 | 26 | }; |
| 27 | + } |
22 | 28 |
|
23 | 29 | public override bool CanRead => true; |
24 | 30 | } |
|
0 commit comments