From 0411dfad0ba57f9ad788d8aab27a40ec66d3afcf Mon Sep 17 00:00:00 2001 From: Jason Zhu Date: Wed, 8 Sep 2021 10:17:19 +1000 Subject: [PATCH] 7.1.4 Setting Up the DI Container --- .../App_Start/NinjectWebCommon.cs | 2 + .../NinjectDependencyResolver.cs | 38 +++++++++++++++++++ .../SportsStore.WebUI.csproj | 1 + 3 files changed, 41 insertions(+) create mode 100644 SportsStore/SportsStore.WebUI/Infrastructure/NinjectDependencyResolver.cs diff --git a/SportsStore/SportsStore.WebUI/App_Start/NinjectWebCommon.cs b/SportsStore/SportsStore.WebUI/App_Start/NinjectWebCommon.cs index f11af84..72fb299 100644 --- a/SportsStore/SportsStore.WebUI/App_Start/NinjectWebCommon.cs +++ b/SportsStore/SportsStore.WebUI/App_Start/NinjectWebCommon.cs @@ -53,6 +53,8 @@ namespace SportsStore.WebUI.App_Start /// The kernel. private static void RegisterServices(IKernel kernel) { + System.Web.Mvc.DependencyResolver.SetResolver((new + SportsStore.WebUI.Infrastructure.NinjectDependencyResolver(kernel))); } } } diff --git a/SportsStore/SportsStore.WebUI/Infrastructure/NinjectDependencyResolver.cs b/SportsStore/SportsStore.WebUI/Infrastructure/NinjectDependencyResolver.cs new file mode 100644 index 0000000..55104e6 --- /dev/null +++ b/SportsStore/SportsStore.WebUI/Infrastructure/NinjectDependencyResolver.cs @@ -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 GetServices(Type serviceType) + { + return kernel.GetAll(serviceType); + } + + private void AddBindings() + { + // put bindings here + } + + + } +} \ No newline at end of file diff --git a/SportsStore/SportsStore.WebUI/SportsStore.WebUI.csproj b/SportsStore/SportsStore.WebUI/SportsStore.WebUI.csproj index 7ef0d4c..df7e57b 100644 --- a/SportsStore/SportsStore.WebUI/SportsStore.WebUI.csproj +++ b/SportsStore/SportsStore.WebUI/SportsStore.WebUI.csproj @@ -112,6 +112,7 @@ Global.asax +