Browse Source

Don't cache generic JsonConverters

tags/1.0-rc
RogueException 8 years ago
parent
commit
881c0320bd
4 changed files with 7 additions and 13 deletions
  1. +0
    -2
      src/Discord.Net.Core/Net/Converters/ArrayConverter.cs
  2. +7
    -7
      src/Discord.Net.Core/Net/Converters/DiscordContractResolver.cs
  3. +0
    -2
      src/Discord.Net.Core/Net/Converters/OptionalConverter.cs
  4. +0
    -2
      src/Discord.Net.Core/Net/Converters/UInt64EntityOrIdConverter.cs

+ 0
- 2
src/Discord.Net.Core/Net/Converters/ArrayConverter.cs View File

@@ -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;


+ 7
- 7
src/Discord.Net.Core/Net/Converters/DiscordContractResolver.cs View File

@@ -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;
}
}


+ 0
- 2
src/Discord.Net.Core/Net/Converters/OptionalConverter.cs View File

@@ -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;


+ 0
- 2
src/Discord.Net.Core/Net/Converters/UInt64EntityOrIdConverter.cs View File

@@ -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;


Loading…
Cancel
Save