dedlfix: Kein parameterloser Konstruktor

Beitrag lesen

Tach!

ja, das sind zwei Controller, MVC und Api-Controller, in einem Projekt. Was spricht da dagegen.

Nichts. Du musst sie nur unterschiedlich behandeln, wenn sie unterschiedlich sind.

Das Problem ist nur, wie komme ich bei DI an den Parameterbehafteten Kontruktor, wenn den Parameterlosen zuerst aufgerufen wird?

Woraus schließt du, dass das DI hier das Problem ist? Wenn du zum Beispiel Code scheibst, der eine Klasse instantiiert, dann kann sich da kein DI einklinken und die Erstellung vornehmen. Dein Code muss stattdessen so ausgelegt sein, dass er die Instantiierung dem DI überlässt. Ansonsten ist das DI machtlos. Deshalb muss das DI-Framework wissen, dass und wie es sich in die Instantiierung der Controller (und gegebenenfalls anderer Klassen) einzuklinken hat. Üblicherweise gibt es da für bestimmte Szenarien (in deinem Fall ASP.NET MVC) eine Erweiterung des DI, in einem meist auch extra zu installierendem NuGet-Paket, sowie eine Anleitung, wie sich das DI in das Szenario einfügen kann. ASP.NET MVC ist jedenfalls vorbereitet für die Nutzung von DI.

Wenn das grundlegend gegeben ist, und wenn dann das DI die Instantiierung nicht selbständig erledigen kann, dann muss man da was konfigurieren. Sprich, man fügt an der dafür vorgesehenen Stelle im Initialisierungsprozess des DI Code hinzu, der für ein bestimmtes Interface die Instantiierung eines konkreten Objekts vornimmt.

All das muss die Dokumentation des DI-Frameworks hergeben.

dedlfix.