Table of Contents

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

TRequiredEnum

The 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

reader Utf8JsonReader

The reader.

typeToConvert Type

The type to convert.

options JsonSerializerOptions

An 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

writer Utf8JsonWriter

The writer to write to.

value TRequiredEnum

The value to convert to JSON.

options JsonSerializerOptions

An object that specifies serialization options to use.