Don't cache generic JsonConverters
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user