Szybki sposób na Dependency Injection w ASP.NET WebAPI

Konfiguracja pakietu DI, takiego jak Ninject zawsze kojarzyła mi się z wieloma problemami, żmudną konfiguracją i tworzeniem DependencyResolvera. Tak było dopóki nie odkryłem wspaniałej paczki nugetowej, która załatwia wszystko za developera. Wystarczy zainstalować paczkę Ninject.WebApi.DependencyResolver.

Install-Package Ninject.WebApi.DependencyResolver

Paczka ta dociągnie wszystkie zależności w tym paczki Ninject-owe. Przed odpaleniem projektu należy jeszcze otworzyć plik: App_Start/NinjectWebCommon.cs i w metodzie CreateKernel(), tuż przed return dodać wpis:

System.Web.Http.GlobalConfiguration.Configuration.DependencyResolver = new Ninject.WebApi.DependencyResolver.NinjectDependencyResolver(kernel);

Zastanawiacie się co dalej? To wszystko, możecie już korzystać z wstrzykiwania zależności, poprzez konstruktor bądź poprzez atrybut Inject. Więcej o bibliotece Ninject znajdziecie tutaj.

TIP: Nie wiem czemu, ale ja po instalacji jeszcze błąd, że nie można znaleźć biblioteki Ninject.dll w wersji 3.2.0.0. Spojrzałem i rzeczywiście zainstalowała się wersja 3.0.0.0. Dlatego musiałem jeszcze zaktualizować tą bibliotekę:

Update-Package Ninject

Po tym już wszystko działało poprawnie.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *