Jak wiadomo, IApplicationBuilder metody Configure (klasa Startup) w ASP.NET Core wymaga specyficznej semantyki (aby metoda 'Invoke' z parametrem wejściowym typu HttpContext i Zadanie jako wartością zwracaną). Ale dlaczego nie jest zaimplementowany jako interfejs? Mogę napisać coś podobnego:Dlaczego oprogramowanie pośrednie w środowisku ASP.NET Core wymaga określonej semantyki, ale nie interfejsu?
public class FakeMiddleware
{
}
i zarejestrować go:
app.UseMiddleware<FakeMiddleware>();
i dostaniemy błąd wykonania. Oczywiście, jest to banalne i łatwe do znalezienia i naprawienia, ale jest zaimplementowane tak brutalnie, bez interfejsu?
, więc z DI możemy myśleć o interfejsach wad w aktualnej "wersji"? :) Ponieważ ta sytuacja (z dodatkowymi parametrami i rozwiązywaniem go automatycznie) może być bardziej rozproszona niż to miejsce –
Och, gosh, to powinien być konstruktor wstrzyknięty. Jeśli jest to zależność od żądania, to wzór fabryczny dobrze by działał – Rbjz