Class ParsableJsonConverter<T>
- Namespace
- Trellis
- Assembly
- Trellis.Core.dll
Converts value objects that implement IParsable<TSelf> to and from JSON.
public class ParsableJsonConverter<T> : JsonConverter<T> where T : IParsable<T>
Type Parameters
TThe value-object type to convert.
- Inheritance
-
ParsableJsonConverter<T>
- Inherited Members
- Extension Methods
Remarks
Generated Required* value objects use this converter so Core-only consumers can
serialize and deserialize generated primitives without referencing Trellis.Primitives.
Properties
HandleNull
Tells System.Text.Json to call Read(ref Utf8JsonReader, Type, JsonSerializerOptions) even when the JSON
token is null. Without this, the serializer bypasses the converter for null tokens
on reference-type targets and yields a null reference, silently violating the
non-nullable contract of a generated primitive.
public override bool HandleNull { get; }
Property Value
Methods
Read(ref Utf8JsonReader, Type, JsonSerializerOptions)
Reads and converts the JSON to type T.
public override T? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
Parameters
readerUtf8JsonReaderThe reader.
typeToConvertTypeThe type to convert.
optionsJsonSerializerOptionsAn object that specifies serialization options to use.
Returns
- T
The converted value.
Write(Utf8JsonWriter, T, JsonSerializerOptions)
Writes a specified value as JSON.
public override void Write(Utf8JsonWriter writer, T value, JsonSerializerOptions options)
Parameters
writerUtf8JsonWriterThe writer to write to.
valueTThe value to convert to JSON.
optionsJsonSerializerOptionsAn object that specifies serialization options to use.