123456789101112131415161718192021222324252627 |
- using System;
- using System.Text.Json;
- using System.Text.Json.Serialization;
- namespace MediaBrowser.Common.Json.Converters
- {
- /// <summary>
- /// Json nullable struct converter factory.
- /// </summary>
- public class JsonNullableStructConverterFactory : JsonConverterFactory
- {
- /// <inheritdoc />
- public override bool CanConvert(Type typeToConvert)
- {
- return typeToConvert.IsGenericType
- && typeToConvert.GetGenericTypeDefinition() == typeof(Nullable<>)
- && typeToConvert.GenericTypeArguments[0].IsValueType;
- }
- /// <inheritdoc />
- public override JsonConverter? CreateConverter(Type typeToConvert, JsonSerializerOptions options)
- {
- var structType = typeToConvert.GenericTypeArguments[0];
- return (JsonConverter?)Activator.CreateInstance(typeof(JsonNullableStructConverter<>).MakeGenericType(structType));
- }
- }
- }
|