C# ServiceCollection und Nullable-Parameter

Ghost_Rider_R

Lieutenant
Registriert
Nov. 2009
Beiträge
759
Hallo zusammen,

ich habe eine ServiceCollection (inkl. Provider), welcher immer einen Fehler wirft, wenn Sie dieses Interface später auflösen soll und ILogManager davor nicht registriert wurde:

public CheckManager(ILogManager? logManager)

In meinem Fall ist ILogManager optional und wird nur registriert, wenn dieser auch benötigt ist, d.h. wäre es für den Konstruktor von CheckManager in Ordnung, wenn hier NULL übergeben wird, aber beim Auflösen gibt es dann immer einen Fehler.

Wie wäre hier die richtige Vorgehensweise?

LG Ghost
 
Also, ich bin ja jetzt eigentlich eher in Java und nicht C# unterwegs.
Aber was ich grad überhaupt nicht verstehe: Was meinst du mit "Interface auflösen"? Wie geht das vonstatten? Und wie sieht der Konstruktor überhaupt aus?

Ghost_Rider_R schrieb:
aber beim Auflösen gibt es dann immer einen Fehler.
Und welchen Fehler?
 
Dafür einfach das Null Object Pattern nutzen. Anstatt ILogManager nicht zu registrieren, registriert man einfach eine Implementierung von ILogManager die einfach nichts macht.

Alternativ eine Factory nutzen und prüfen ob ILogManager im ServiceProvider registriert wurde und die Auflösung selbst übernehmen. Der ServiceProvider kennt per Default keine optionalen Parameter. Ich würde aber ersteres bevorzugen. Dafür sind Interfaces schließlich da.
 
  • Gefällt mir
Reaktionen: Ghost_Rider_R
Zurück
Oben