In this post, I show you how to integrate Ninject into ASP.NET MVC and Web API.
Prior to the implementation, I explain to you what Ninject is. Ninject is a IoC framework for .NET platform to help you to integrate DI into .NET applications easily.
Install Nuget Packages
- Ninject.Web.WebApi
- Ninject.MVC5
Implement the integration
Integrating Ninject is simple:
- Global.asax must inherit NinjectHttpApplication
- Override the CreateKernel method.
- Inject required services.
Public Class Global_asax Inherits NinjectHttpApplication Protected Overrides Function CreateKernel() As IKernel Dim kernel = New StandardKernel() RegisterServices(kernel) Return kernel End Function Private Sub RegisterServices(ByVal kernel As IKernel) ' TODO: inject your services here... ' e.g. kernel.Bind(Of IUserAccountRepository)().To(Of UserAccountRepository).InRequestScope() End Sub Protected Overrides Sub OnApplicationStarted() MyBase.OnApplicationStarted() AreaRegistration.RegisterAllAreas() GlobalConfiguration.Configure(AddressOf WebApiConfig.Register) RouteConfig.RegisterRoutes(RouteTable.Routes) End Sub End Class
ASP.NET MVC
Public Class HomeController Inherits Controller Private ReadOnly UserRepository As IUserAccountRepository Public Sub New(UserRepository As IUserAccountRepository) Me.UserRepository = UserRepository End Sub End Class
ASP.NET Web API
Public Class UserApiController Inherits ApiController Private ReadOnly UserRepository As IUserAccountRepository Public Sub New(UserRepository As IUserAccountRepository) Me.UserRepository = UserRepository End Sub End Class
Hope you enjoy this post
Happy coding :)
Top comments (0)