Files
csharp/src/KubernetesClient.Models/IntOrStringConverter.cs
Boshi Lian 8e8619130a netstandard2 extendable lib model, basic rest (#793)
* first lib model

* add missing files

* happy test

* add vanilla rest for extend

* fix new url pattern

* address comments

* add v to tag

* bump ver

* add missing file when ren

* support multi pkg

* fix gh action

* fix env var

* ren title

* use gh action to set ver

* remove unused

* remove unused
2022-03-23 16:25:20 -07:00

39 lines
1.1 KiB
C#

namespace k8s.Models
{
internal sealed class IntOrStringConverter : JsonConverter<IntstrIntOrString>
{
public override IntstrIntOrString Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
switch (reader.TokenType)
{
case JsonTokenType.String:
return reader.GetString();
case JsonTokenType.Number:
return reader.GetInt64();
default:
break;
}
throw new NotSupportedException();
}
public override void Write(Utf8JsonWriter writer, IntstrIntOrString value, JsonSerializerOptions options)
{
if (writer == null)
{
throw new ArgumentNullException(nameof(writer));
}
var s = value?.Value;
if (long.TryParse(s, out var intv))
{
writer.WriteNumberValue(intv);
return;
}
writer.WriteStringValue(s);
}
}
}