Class RequiredEnumJsonConverter<TRequiredEnum>
- Namespace
- Trellis
- Assembly
- Trellis.Primitives.dll
JSON converter for RequiredEnum<TSelf> types. Serializes to the string Name and deserializes from string name.
public sealed class RequiredEnumJsonConverter<TRequiredEnum> : JsonConverter<TRequiredEnum> where TRequiredEnum : RequiredEnum<TRequiredEnum>, IScalarValue<TRequiredEnum, string>
Type Parameters
TRequiredEnumThe enum value object type to convert.
- Inheritance
-
JsonConverter<TRequiredEnum>RequiredEnumJsonConverter<TRequiredEnum>
- Inherited Members
- Extension Methods
Examples
[JsonConverter(typeof(RequiredEnumJsonConverter<OrderState>))]
public partial class OrderState : RequiredEnum<OrderState>
{
public static readonly OrderState Draft = new();
public static readonly OrderState Confirmed = new();
}
// Serialization
var json = JsonSerializer.Serialize(OrderState.Draft); // "Draft"
// Deserialization
var state = JsonSerializer.Deserialize<OrderState>("\"Draft\"");
Methods
Read(ref Utf8JsonReader, Type, JsonSerializerOptions)
Reads and converts the JSON to type T.
public override TRequiredEnum? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
Parameters
readerUtf8JsonReaderThe reader.
typeToConvertTypeThe type to convert.
optionsJsonSerializerOptionsAn object that specifies serialization options to use.
Returns
- TRequiredEnum
The converted value.
Write(Utf8JsonWriter, TRequiredEnum, JsonSerializerOptions)
Writes a specified value as JSON.
public override void Write(Utf8JsonWriter writer, TRequiredEnum value, JsonSerializerOptions options)
Parameters
writerUtf8JsonWriterThe writer to write to.
valueTRequiredEnumThe value to convert to JSON.
optionsJsonSerializerOptionsAn object that specifies serialization options to use.