Don't cache generic JsonConverters

This commit is contained in:
RogueException
2016-10-15 13:47:23 -03:00
parent 890318ecfc
commit 881c0320bd
4 changed files with 7 additions and 13 deletions

View File

@@ -6,8 +6,6 @@ namespace Discord.Net.Converters
{ {
internal class ArrayConverter<T> : JsonConverter internal class ArrayConverter<T> : JsonConverter
{ {
public static ArrayConverter<T> Instance;
private readonly JsonConverter _innerConverter; private readonly JsonConverter _innerConverter;
public override bool CanConvert(Type objectType) => true; public override bool CanConvert(Type objectType) => true;

View File

@@ -104,14 +104,14 @@ namespace Discord.Net.Converters
private static JsonConverter MakeGenericConverter(PropertyInfo propInfo, Type converterType, Type innerType) private static JsonConverter MakeGenericConverter(PropertyInfo propInfo, Type converterType, Type innerType)
{ {
var genericType = converterType.MakeGenericType(innerType).GetTypeInfo(); var genericType = converterType.MakeGenericType(innerType).GetTypeInfo();
var instanceField = genericType.GetDeclaredField("Instance"); //var instanceField = genericType.GetDeclaredField("Instance");
var converter = instanceField.GetValue(null) as JsonConverter; //var converter = instanceField.GetValue(null) as JsonConverter;
if (converter == null) //if (converter == null)
{ //{
var innerConverter = GetConverter(propInfo, innerType); var innerConverter = GetConverter(propInfo, innerType);
converter = genericType.DeclaredConstructors.First().Invoke(new object[] { innerConverter }) as JsonConverter; var converter = genericType.DeclaredConstructors.First().Invoke(new object[] { innerConverter }) as JsonConverter;
instanceField.SetValue(null, converter); //instanceField.SetValue(null, converter);
} //}
return converter; return converter;
} }
} }

View File

@@ -5,8 +5,6 @@ namespace Discord.Net.Converters
{ {
internal class OptionalConverter<T> : JsonConverter internal class OptionalConverter<T> : JsonConverter
{ {
internal static OptionalConverter<T> Instance;
private readonly JsonConverter _innerConverter; private readonly JsonConverter _innerConverter;
public override bool CanConvert(Type objectType) => true; public override bool CanConvert(Type objectType) => true;

View File

@@ -6,8 +6,6 @@ namespace Discord.Net.Converters
{ {
internal class UInt64EntityOrIdConverter<T> : JsonConverter internal class UInt64EntityOrIdConverter<T> : JsonConverter
{ {
public static UInt64EntityOrIdConverter<T> Instance;
private readonly JsonConverter _innerConverter; private readonly JsonConverter _innerConverter;
public override bool CanConvert(Type objectType) => true; public override bool CanConvert(Type objectType) => true;