7.1.4 Setting Up the DI Container

This commit is contained in:
Jason Zhu 2021-09-08 10:17:19 +10:00
parent 94ffb2a66c
commit 0411dfad0b
3 changed files with 41 additions and 0 deletions

View File

@ -53,6 +53,8 @@ namespace SportsStore.WebUI.App_Start
/// <param name="kernel">The kernel.</param> /// <param name="kernel">The kernel.</param>
private static void RegisterServices(IKernel kernel) private static void RegisterServices(IKernel kernel)
{ {
System.Web.Mvc.DependencyResolver.SetResolver((new
SportsStore.WebUI.Infrastructure.NinjectDependencyResolver(kernel)));
} }
} }
} }

View File

@ -0,0 +1,38 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Services.Description;
using Ninject;
namespace SportsStore.WebUI.Infrastructure
{
public class NinjectDependencyResolver : IDependencyResolver
{
private IKernel kernel;
public NinjectDependencyResolver(IKernel kernelParam)
{
kernel = kernelParam;
AddBindings();
}
public object GetService(Type serviceType)
{
return kernel.TryGet(serviceType);
}
public IEnumerable<object> GetServices(Type serviceType)
{
return kernel.GetAll(serviceType);
}
private void AddBindings()
{
// put bindings here
}
}
}

View File

@ -112,6 +112,7 @@
<Compile Include="Global.asax.cs"> <Compile Include="Global.asax.cs">
<DependentUpon>Global.asax</DependentUpon> <DependentUpon>Global.asax</DependentUpon>
</Compile> </Compile>
<Compile Include="Infrastructure\NinjectDependencyResolver.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>