Как известно, IApplicationBuilder метода Configure (class Startup) в ASP.NET Core требует специальной семантики (иметь метод «Invoke» с входным параметром типа HttpContext и Task как возвращаемое значение). Но почему это не реализовано как интерфейс? Я могу написать что-то вроде этого:Почему промежуточное ПО в ASP.NET Core требует определенной семантики, но не интерфейса?
public class FakeMiddleware
{
}
и зарегистрировать его:
app.UseMiddleware<FakeMiddleware>();
и мы получим сообщение об ошибке выполнения. Конечно, это тривиальная вещь и ее легко найти и исправить, но она реализована настолько грубо, без интерфейса?
Итак, с DI мы можем думать о недостатках интерфейсов в текущей «версии»? :) Потому что эта ситуация (с дополнительными параметрами и разрешающая ее автоматически) может быть более распределенной, чем это место –
О, черт возьми, это должно быть инжектировано конструктором. Если это зависимость от запроса, то шаблон фабрики будет работать красиво – Rbjz