Ho un'applicazione .NET (in realtà questo può essere un problema per qualsiasi applicazione N-Tiered) che ha 3 componenti separati.
- ClassLibrary
- Ha preoccupazioni trasversali come la registrazione, l'autenticazione e la risoluzione IoC
- Ha classi di utilità statiche per Codifica / Decodifica, Crittografia ecc.
- ThirdPartyApps
- Ha riferimenti alle librerie esterne come i pacchetti e le librerie di nuget di YouTube, Azure, AWS.
- Riferimenti a ClassLibrary per utilizzare le classi di utilità di registrazione e statiche.
- Applicazione di sfondo
- Anche riferimenti alla Libreria di classi.
- Include la logica per utilizzare le app di terze parti, come il consumo di YoutubeAPI
Il mio problema qui, dall'applicazione in background, non voglio fare riferimento diretto a ThirdPartyApps. Perché, voglio che ClassLibrary risolva il provider che desidero (da ThirdPartyApps).
Ma non riesco a registrare ThirdPartyApps in ClassLibrary con Autofac (contenitore IoC), poiché ClassLibrary fa già riferimento a ThirdPartyApps, quindi creerà "Errore di dipendenza circolare".
Sembra che manchi qui una logica di implementazione e vorrei vedere quale sarebbe un modo possibile per risolverlo.
Sto pensando di creare un altro componente per il mapping delle dipendenze, ma non voglio creare componenti aggiuntivi non necessari senza motivo (o forse questa sarà la soluzione?).
C'è qualche logica sbagliata che mi manca qui?