Ich erhalte die Fehlermeldung „Dienst für Typ „XXX“ konnte nicht aufgelöst werden“, aber ich würde es vorziehen, wenn der DI null zurückgibt, anstatt eine Ausnahme auszulösen.
Ich möchte optionale Dienste zulassen, also wenn ein Dienst vorhanden ist gefunden, verwenden Sie das im Konstruktor. Wenn es nicht gefunden wird, übergeben Sie null an den Konstruktor.
In meiner Implementierung habe ich:
Code: Select all
public IServiceManager(IService service, ...)
{
_service = service ?? new DefaultService();
...
}
Vielleicht verstehe ich falsch, wie DI funktioniert. Vielleicht könnte ich stattdessen eine Factory verwenden, um dies zu tun?
In meinem System kommt es jedoch häufig vor, dass ich Standarddienste verwende, wenn keine bereitgestellt werden. Deshalb benötige ich eine Lösung, die nicht erfordert, dass der Konsument der API einen Dienst registriert.
Gibt es eine Möglichkeit, ASP.NET Core DI so zu konfigurieren, dass Null zurückgegeben wird, anstatt eine Ausnahme auszulösen?
Mobile version