| 1234567891011121314151617181920212223242526272829303132333435 |
- using System;
- using System.Collections.Generic;
- using System.Text.Json;
- using System.Text.Json.Serialization;
- namespace Quadarax.Foundation.Core.Json
- {
- public class IListInterfaceConverterFactory : JsonConverterFactory
- {
- public IListInterfaceConverterFactory(Type interfaceType)
- {
- this.InterfaceType = interfaceType;
- }
- public Type InterfaceType { get; }
- public override bool CanConvert(Type typeToConvert)
- {
- if (typeToConvert == typeof(IList<>).MakeGenericType(this.InterfaceType)
- && typeToConvert.GenericTypeArguments[0] == this.InterfaceType)
- {
- return true;
- }
- return false;
- }
- public override JsonConverter? CreateConverter(Type typeToConvert, JsonSerializerOptions options)
- {
- return (JsonConverter?)Activator.CreateInstance(
- typeof(ListConverter<>).MakeGenericType(this.InterfaceType));
- }
- }
- }
|