safaribook-pro-aspnet-mvc5/SportsStore/SportsStore.WebUI/Infrastructure/NinjectDependencyResolver.cs

49 lines
1.3 KiB
C#
Raw Normal View History

2021-09-08 10:17:19 +10:00
using System;
using System.Collections.Generic;
using System.Configuration;
2021-09-08 10:17:19 +10:00
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Services.Description;
using Moq;
2021-09-08 10:17:19 +10:00
using Ninject;
using SportsStore.Domain.Abstract;
using SportsStore.Domain.Concrete;
using SportsStore.Domain.Entities;
2021-09-08 10:17:19 +10:00
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()
{
kernel.Bind<IProductRepository>().To<EFProductRepository>();
2021-09-08 10:17:19 +10:00
EmailSettings emailSettings = new EmailSettings
{
WriteAsFile = bool.Parse(ConfigurationManager.AppSettings["Email.WriteAsFile"] ?? "false")
};
2021-09-08 10:17:19 +10:00
kernel.Bind<IOrderProcessor>().To<EmailOrderProcessor>()
.WithConstructorArgument("settings", emailSettings);
}
2021-09-08 10:17:19 +10:00
}
}