public override void Load() { Bind <IUserRepository>().To <UserRepository>(); Bind <ICandidateRepository>().To <CandidateRepository>(); Bind <IEmployeeRepository>().To <EmployeeRepository>(); Bind <IVacancyRepository>().To <VacancyRepository>(); Bind <IRoleRepository>().To <RoleRepository>(); Bind <IUserManager>().To <UserManager>(); Bind <IRoleManager>().To <RoleManager>(); Bind <ICandidateManager>().To <CandidateManager>(); Bind <IEmployeeManager>().To <EmployeeManager>(); Bind <IVacancyManager>().To <VacancyManager>(); Bind <IUserAppService>().To <UserAppService>(); Bind <ICandidateAppService>().To <CandidateAppService>(); Bind <IEmployeeAppService>().To <EmployeeAppService>(); Bind <IVacancyAppService>().To <VacancyAppService>(); Bind <IRoleAppService>().To <RolleAppService>(); var sessionFactory = NHibernateHelper.Config(ConfigurationManager.ConnectionStrings["RecruitmentAgencyDb"].ConnectionString); Bind <ISessionFactory>().ToConstant(sessionFactory).InSingletonScope();//ToMethod(c => NHibernateHelper.Config()).InSingletonScope(); Bind <ISession>().ToMethod(c => sessionFactory.OpenSession()).InThreadScope(); //Bind<IValueResolver<SourceEntity, DestModel, bool>>().To<MyResolver>(); var mapperConfiguration = CreateConfiguration(); Bind <MapperConfiguration>().ToConstant(mapperConfiguration).InSingletonScope(); // This teaches Ninject how to create automapper instances say if for instance // MyResolver has a constructor with a parameter that needs to be injected Bind <IMapper>().ToMethod(ctx => new Mapper(mapperConfiguration)); Unbind <ModelValidatorProvider>(); }