dependency injection overview

Dependency Injection in DotNet Core – Quick Review

In DotNet Core è possibile utilizzare la Dependency Injection senza dover installare componenti aggiuntivi. Il tutto è delegato alla registrazione dei servizi all’interno del file Startup.cs, in particolare nel metodo ConfigureServices. 

In un precedente post era già stato descritto il funzionamento della DI in .NET Core. In questo post vengono trattati brevemente alcuni aspetti legati al suo utilizzo e funzionamento. 

Viene implementata una vera e propria mappatura tra Interface e tipo concreto. Inoltre, è necessario specificare il tipo di modalità, scegliendo tra: 

  • AddTransient: ogni volta che viene richiesta una particolare Interface, viene creata un’istanza dell’oggetto equivalente
  • AddScoped: i servizi sono creati e condivisi per tutto il ciclo di vita della richiesta HTTP
  • AddSingleton: i servizi sono creati e condivisi per tutto il ciclo di vita dell’applicazione (creati una sola volta)

Una delle novità di .NET Core è la possibilità di utilizzare la Dependency Injection anche all’interno delle View. Supponendo di aver definito un’interface denominata ICountryService che dovrà istanziare un oggetto di tipo ContryService,  la seguente riga di codice: 

consente di utilizzare la DI all’interno di vista scritta con Razor. La keyword @inject consente di specificare l’interfaccia che dovrà essere rimappata sull’oggetto CountryService. Inoltre, è possibile condividere la mappatura globalmente per tutte le Views inserendola il codice precedente all’interno del file _ViewImports.cshtml (condiviso da tutte le Views).

Al momento, la DI può essere utilizzata in qualsiasi punto dell’applicazione, compresi MiddleWares, TagHelpers e ViewComponents tranne gli HtmlHelpers che, di fatto, sono degli Extension Method. 

Pubblicato da

Andrea Merlin

Laureato in informatica, diversi corsi di specializzazione legati allo Sviluppo Software e alla Computer forensics. Appassionato di nuove tecnologie, amo la programmazione, la Business Intelligence e tematiche legate alla Privacy.Sempre alla ricerca di nuove idee, stimoli … e progetti da seguire!Amo trascorrere il tempo libero in Val Borbera, un piccolo angolo del Piemonte, in provincia di Alessandria.