C#C
C#3y ago
3 replies
absolution183

❔ Using a Custom JSON Converter on NswagStudio's Generated C# Client

Does anyone know how I can make NswagStudio use a custom json converter that I made on the generated C# client?
public class CustomDateTimeOffsetConverter : DateTimeConverterBase
{
    public override object ReadJson(JsonReader reader, Type objectType, object? existingValue, JsonSerializer serializer)
    {
        DateTimeOffset? value = null;
​
        if (string.IsNullOrEmpty(reader.Value?.ToString())
            || !DateTimeOffset.TryParse(reader.Value?.ToString(), out DateTimeOffset output))
        {
            return value;
        }
​
        if (output < DateTimeOffset.MaxValue)
        {
            value = output;
        }
​
        return value;
    }
​
    public override void WriteJson(JsonWriter writer, object? value, JsonSerializer serializer)
    {
        if (string.IsNullOrEmpty(value?.ToString())
            || !DateTimeOffset.TryParse(value.ToString(), out DateTimeOffset output)
            || (DateTimeOffset.TryParse(value.ToString(), out output) && output == DateTimeOffset.MaxValue))
        {
            writer.WriteNull();
        }
​
        writer.WriteValue(value);
    }
}
Was this page helpful?