Нет. Сервисы и Middlewares не совпадают. И нет способа внедрить какой-либо сервис до того, как контейнер DI узнает об этом. Другими словами, нам нужно зарегистрировать эти сервисы, прежде чем мы внедрим их в промежуточное ПО.
Вместо этого вы можете создать промежуточное программное обеспечение по соглашению:
public class ConventionalMiddleware
{
private readonly RequestDelegate _next;
public ConventionalMiddleware(RequestDelegate next){
_next = next;
}
public async Task InvokeAsync(HttpContext context, Service1 s1, Service2 s2, ...)
{
// ...
}
}
и UseMiddleware<ConventionalMiddleware>()
в пределах Configure()
поднимут вес.