Browse Source

Throw an exception with a tailored message.

pull/1123/head
Joe4evr 7 years ago
parent
commit
3a7943125c
1 changed files with 10 additions and 1 deletions
  1. +10
    -1
      src/Discord.Net.Commands/Builders/ParameterBuilder.cs

+ 10
- 1
src/Discord.Net.Commands/Builders/ParameterBuilder.cs View File

@@ -63,7 +63,16 @@ namespace Discord.Commands.Builders
var reader = commands.GetTypeReaders(type)?.FirstOrDefault().Value; var reader = commands.GetTypeReaders(type)?.FirstOrDefault().Value;
if (reader == null) if (reader == null)
{ {
var readerType = typeof(NamedArgumentTypeReader<>).MakeGenericType(new[] { type });
Type readerType;
try
{
readerType = typeof(NamedArgumentTypeReader<>).MakeGenericType(new[] { type });
}
catch (ArgumentException ex)
{
throw new InvalidOperationException($"Parameter type '{type.Name}' for command '{Command.Name}' must be a class with a public parameterless constructor to use as a NamedArgumentType.", ex);
}

reader = (TypeReader)Activator.CreateInstance(readerType, new[] { commands }); reader = (TypeReader)Activator.CreateInstance(readerType, new[] { commands });
commands.AddTypeReader(type, reader); commands.AddTypeReader(type, reader);
} }


Loading…
Cancel
Save