Risoluzione della dipendenza del componente di livello superiore / inferiore

1

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?

    
posta Teoman shipahi 15.06.2018 - 07:09
fonte

1 risposta

1

(or maybe this will be the solution?)"

Sì, vai e crea un altro componente, ovviamente. E quel componente non è inutile. Se non vuoi creare una "grande palla di fango", in cui tutto dipende da tutto il resto, sarai felice di non aver bisogno di legare la tua ClassLibrary esistente al componente ThirdPartyApps direttamente.

    
risposta data 15.06.2018 - 07:34
fonte