| @@ -841,27 +841,6 @@ namespace Discord.Interactions | |||||
| matchContainer.SetSegmentMatches(matches); | matchContainer.SetSegmentMatches(matches); | ||||
| } | } | ||||
| internal TypeConverter GetTypeConverter (Type type, IServiceProvider services = null) | |||||
| { | |||||
| if (_typeConverters.TryGetValue(type, out var specific)) | |||||
| return specific; | |||||
| else if (_genericTypeConverters.Any(x => x.Key.IsAssignableFrom(type) | |||||
| || (x.Key.IsGenericTypeDefinition && type.IsGenericType && x.Key.GetGenericTypeDefinition() == type.GetGenericTypeDefinition()))) | |||||
| { | |||||
| services ??= EmptyServiceProvider.Instance; | |||||
| var converterType = GetMostSpecificTypeConverter(type); | |||||
| var converter = ReflectionUtils<TypeConverter>.CreateObject(converterType.MakeGenericType(type).GetTypeInfo(), this, services); | |||||
| _typeConverters[type] = converter; | |||||
| return converter; | |||||
| } | |||||
| else if (_typeConverters.Any(x => x.Value.CanConvertTo(type))) | |||||
| return _typeConverters.First(x => x.Value.CanConvertTo(type)).Value; | |||||
| throw new ArgumentException($"No type {nameof(TypeConverter)} is defined for this {type.FullName}", "type"); | |||||
| } | |||||
| internal TypeConverter GetTypeConverter(Type type, IServiceProvider services = null) | internal TypeConverter GetTypeConverter(Type type, IServiceProvider services = null) | ||||
| => _typeConverterMap.Get(type, services); | => _typeConverterMap.Get(type, services); | ||||