Don't cache generic JsonConverters
This commit is contained in:
@@ -6,8 +6,6 @@ namespace Discord.Net.Converters
|
||||
{
|
||||
internal class ArrayConverter<T> : JsonConverter
|
||||
{
|
||||
public static ArrayConverter<T> Instance;
|
||||
|
||||
private readonly JsonConverter _innerConverter;
|
||||
|
||||
public override bool CanConvert(Type objectType) => true;
|
||||
|
||||
@@ -104,14 +104,14 @@ namespace Discord.Net.Converters
|
||||
private static JsonConverter MakeGenericConverter(PropertyInfo propInfo, Type converterType, Type innerType)
|
||||
{
|
||||
var genericType = converterType.MakeGenericType(innerType).GetTypeInfo();
|
||||
var instanceField = genericType.GetDeclaredField("Instance");
|
||||
var converter = instanceField.GetValue(null) as JsonConverter;
|
||||
if (converter == null)
|
||||
{
|
||||
//var instanceField = genericType.GetDeclaredField("Instance");
|
||||
//var converter = instanceField.GetValue(null) as JsonConverter;
|
||||
//if (converter == null)
|
||||
//{
|
||||
var innerConverter = GetConverter(propInfo, innerType);
|
||||
converter = genericType.DeclaredConstructors.First().Invoke(new object[] { innerConverter }) as JsonConverter;
|
||||
instanceField.SetValue(null, converter);
|
||||
}
|
||||
var converter = genericType.DeclaredConstructors.First().Invoke(new object[] { innerConverter }) as JsonConverter;
|
||||
//instanceField.SetValue(null, converter);
|
||||
//}
|
||||
return converter;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,8 +5,6 @@ namespace Discord.Net.Converters
|
||||
{
|
||||
internal class OptionalConverter<T> : JsonConverter
|
||||
{
|
||||
internal static OptionalConverter<T> Instance;
|
||||
|
||||
private readonly JsonConverter _innerConverter;
|
||||
|
||||
public override bool CanConvert(Type objectType) => true;
|
||||
|
||||
@@ -6,8 +6,6 @@ namespace Discord.Net.Converters
|
||||
{
|
||||
internal class UInt64EntityOrIdConverter<T> : JsonConverter
|
||||
{
|
||||
public static UInt64EntityOrIdConverter<T> Instance;
|
||||
|
||||
private readonly JsonConverter _innerConverter;
|
||||
|
||||
public override bool CanConvert(Type objectType) => true;
|
||||
|
||||
Reference in New Issue
Block a user