Bei ASP.NET Core ist Dependency Injection ein Feature das fester Bestandteil des Konzeptes ist. Wenn man sein Interface und die dazu gehörige Implementierung registrieren möchte, gibt es dafür eine einfache Möglichkeit.
services.AddScoped<Interface,Implementation>();
Möchte man nun ein generic Interface registrieren liegt das Folgende zunächst nahe:
services.AddScoped<IGenericRepository<T>,Repository<T>>();
dieser Ansatz funktioniert aber nicht.
Für die Registrierung von generic Interfaces muss man folgenden Ansatz wählen:
services.AddScoped(typeof(IGenericRepository<>), typeof(GenericRepository<>));