Was sind die Unterschiede zwischen IServiceProvider.GetRequiredService()
und IServiceProvider.GetService()
?
Wann ist es eine bessere Idee zu verwenden GetRequiredService()
?
Was sind die Unterschiede zwischen IServiceProvider.GetRequiredService()
und IServiceProvider.GetService()
?
Wann ist es eine bessere Idee zu verwenden GetRequiredService()
?
Antworten:
Sie sollten diese Methoden selten aufrufen müssen, da Sie nach Möglichkeit die Konstruktorinjektion verwenden sollten.
In seltenen Fällen, z. B. in Fabriken oder zur dynamischen Instanziierung von Befehlshandlern, können Sie diese selbst beheben.
Davon abgesehen sollten Sie dort verwenden, GetRequiredService
wo Sie den Service benötigen . Es wird eine Ausnahme ausgelöst, wenn der Dienst nicht registriert ist.
GetService
Auf der anderen Seite handelt es sich um optionale Abhängigkeiten, die nur zurückgegeben werden, null
wenn kein solcher Dienst registriert ist.