You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

missing-dep.cs 1.0 kB

1234567891011121314151617181920212223242526272829
  1. public class MyModule : ModuleBase<SocketCommandContext>
  2. {
  3. private readonly DatabaseService _dbService;
  4. public MyModule(DatabaseService dbService)
  5. => _dbService = dbService;
  6. }
  7. public class CommandHandler
  8. {
  9. private readonly CommandService _commands;
  10. private readonly IServiceProvider _services;
  11. public CommandHandler(DiscordSocketClient client)
  12. {
  13. _services = new ServiceCollection()
  14. .AddService<CommandService>()
  15. .AddService(client)
  16. // We are missing DatabaseService!
  17. .BuildServiceProvider();
  18. }
  19. public async Task RegisterCommandsAsync()
  20. {
  21. // ...
  22. // The method fails here because DatabaseService is a required
  23. // dependency and cannot be resolved by the dependency
  24. // injection service at runtime since the service is not
  25. // registered in this instance of _services.
  26. await _commands.AddModulesAsync(Assembly.GetEntryAssembly(), _services);
  27. // ...
  28. }
  29. }