public void Register(ContainerBuilder builder, ITypeFinder typeFinder) { //data layer builder.Register(x => new EfDataProviderManager(x.Resolve<DataSettings>())).As<BaseDataProviderManager>().InstancePerDependency(); builder.RegisterType(SqlServerDataProvider).As<IDataProvider>().InstancePerDependency(); if (dataProviderSettings != null && dataProviderSettings.IsValid()) { var efDataProviderManager = new EfDataProviderManager(dataSettingsManager.LoadSettings()); var dataProvider = efDataProviderManager.LoadDataProvider(); dataProvider.InitConnectionFactory(); builder.Register<IDbContext>(c => new NopObjectContext(dataProviderSettings.DataConnectionString)).InstancePerHttpRequest(); } else { builder.Register<IDbContext>(c => new NopObjectContext(dataSettingsManager.LoadSettings().DataConnectionString)).InstancePerHttpRequest(); } builder.RegisterGeneric(typeof(EfRepository<>)).As(typeof(IRepository<>)).InstancePerHttpRequest(); ////builder.RegisterType<ContentService>().As<IContentService>().InstancePerHttpRequest(); ////builder.RegisterType<NodeService>().As<INodeService>().InstancePerHttpRequest(); }
public void Configuration(IAppBuilder app) { var engine = new TenantEngine(new TenantConfiguration { IdentificationStrategy = RequestIdentificationStrategies.FromHostname, TenantResolver = new SampleResolver() }); var builder = new ContainerBuilder(); builder.Register(x => new EfDataProviderManager()).As<BaseDataProviderManager>().InstancePerDependency(); builder.Register(x => x.Resolve<BaseDataProviderManager>().LoadDataProvider()).As<IDataProvider>().InstancePerDependency(); var efDataProviderManager = new EfDataProviderManager(); var dataProvider = efDataProviderManager.LoadDataProvider(); builder.Register<IDbContext>(c => new DomainObjectContext()).InstancePerHttpRequest(); builder.RegisterGeneric(typeof(EfRepository<>)).As(typeof(IRepository<>)).InstancePerHttpRequest(); //Core builder.RegisterType<TenantService>().As<ITenantService>().InstancePerHttpRequest(); builder.RegisterType<ThemeService>().As<IThemeService>().InstancePerHttpRequest(); builder.RegisterType<SettingService>().As<ISettingService>().InstancePerHttpRequest(); builder.RegisterType<StateService>().As<IStateService>().InstancePerLifetimeScope(); //Web and Api Controllers auto config builder.RegisterApiControllers(Assembly.GetExecutingAssembly()); builder.RegisterControllers(Assembly.GetExecutingAssembly()); //Sample Services builder.RegisterType<ContactService>().As<IContactService>().InstancePerHttpRequest(); builder.RegisterType<EventService>().As<IEventService>().InstancePerHttpRequest(); builder.RegisterType<MediaService>().As<IMediaService>().InstancePerHttpRequest(); builder.RegisterType<MenuService>().As<IMenuService>().InstancePerHttpRequest(); builder.RegisterType<NewsletterService>().As<INewsletterService>().InstancePerHttpRequest(); builder.RegisterType<PageService>().As<IPageService>().InstancePerHttpRequest(); builder.RegisterType<PostService>().As<IPostService>().InstancePerHttpRequest(); var container = builder.Build(); var dependencyResolver = new AutofacWebApiDependencyResolver(container); GlobalConfiguration.Configuration.DependencyResolver = dependencyResolver; DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); app.UseAutofacMiddleware(container); app.UseMultiTenancy(engine); }
public virtual void Register(ContainerBuilder builder, ITypeFinder typeFinder) { //HTTP context and other related stuff builder.Register(c => //register FakeHttpContext when HttpContext is not available HttpContext.Current != null ? (new HttpContextWrapper(HttpContext.Current) as HttpContextBase) : (new FakeHttpContext("~/") as HttpContextBase)) .As <HttpContextBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Request) .As <HttpRequestBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Response) .As <HttpResponseBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Server) .As <HttpServerUtilityBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Session) .As <HttpSessionStateBase>() .InstancePerLifetimeScope(); //web helper builder.RegisterType <WebHelper>().As <IWebHelper>().InstancePerLifetimeScope(); //controllers builder.RegisterControllers(typeFinder.GetAssemblies().ToArray()); //data layer var dataSettingsManager = new DataSettingsManager(); var dataProviderSettings = dataSettingsManager.LoadSettings(); builder.Register(c => dataSettingsManager.LoadSettings()).As <DataSettings>(); builder.Register(x => new EfDataProviderManager(x.Resolve <DataSettings>())).As <BaseDataProviderManager>().InstancePerDependency(); builder.Register(x => x.Resolve <BaseDataProviderManager>().LoadDataProvider()).As <IDataProvider>().InstancePerDependency(); if (dataProviderSettings != null && dataProviderSettings.IsValid()) { var efDataProviderManager = new EfDataProviderManager(dataSettingsManager.LoadSettings()); var dataProvider = efDataProviderManager.LoadDataProvider(); dataProvider.InitConnectionFactory(); builder.Register <IDbContext>(c => new AppObjectContext(dataProviderSettings.DataConnectionString)).InstancePerLifetimeScope(); } else { builder.Register <IDbContext>(c => new AppObjectContext(dataSettingsManager.LoadSettings().DataConnectionString)).InstancePerLifetimeScope(); } //Web Api //builder.RegisterType<ApplicationDbContext>().InstancePerHttpRequest(); //builder.RegisterType<UserStore<ApplicationUser>>().As<IUserStore<ApplicationUser>>(); //builder.RegisterType<UserManager<ApplicationUser>>(); builder.RegisterGeneric(typeof(EfRepository <>)).As(typeof(IRepository <>)).InstancePerLifetimeScope(); //cache manager builder.RegisterType <MemoryCacheManager>().As <ICacheManager>().Named <ICacheManager>("UHack_cache_static").SingleInstance(); builder.RegisterType <PerRequestCacheManager>().As <ICacheManager>().Named <ICacheManager>("UHack_cache_per_request").InstancePerLifetimeScope(); //work context builder.RegisterType <WebWorkContext>().As <IWorkContext>().InstancePerLifetimeScope(); //application context builder.RegisterType <WebApplicationContext>().As <IApplicationContext>().InstancePerLifetimeScope(); //services builder.RegisterType <CommonService>().As <ICommonService>().InstancePerLifetimeScope(); builder.RegisterType <ApplicationService>().As <IApplicationService>().InstancePerLifetimeScope(); builder.RegisterType <LanguageService>().As <ILanguageService>().InstancePerLifetimeScope(); builder.RegisterType <UrlRecordService>().As <IUrlRecordService>().InstancePerLifetimeScope(); builder.RegisterType <EncryptionService>().As <IEncryptionService>().InstancePerLifetimeScope(); builder.RegisterType <FormsAuthenticationService>().As <IAuthenticationService>().InstancePerLifetimeScope(); builder.RegisterType <DefaultLogger>().As <ILogger>().InstancePerLifetimeScope(); //pass MemoryCacheManager as cacheManager (cache settings between requests) builder.RegisterType <SettingService>().As <ISettingService>() .WithParameter(ResolvedParameter.ForNamed <ICacheManager>("UHack_cache_static")) .InstancePerLifetimeScope(); builder.RegisterSource(new SettingsSource()); builder.RegisterType <ScheduleTaskService>().As <IScheduleTaskService>().InstancePerLifetimeScope(); builder.RegisterType <RoutePublisher>().As <IRoutePublisher>().SingleInstance(); //Register event consumers var consumers = typeFinder.FindClassesOfType(typeof(IConsumer <>)).ToList(); foreach (var consumer in consumers) { builder.RegisterType(consumer) .As(consumer.FindInterfaces((type, criteria) => { var isMatch = type.IsGenericType && ((Type)criteria).IsAssignableFrom(type.GetGenericTypeDefinition()); return(isMatch); }, typeof(IConsumer <>))) .InstancePerLifetimeScope(); } builder.RegisterType <EventPublisher>().As <IEventPublisher>().SingleInstance(); builder.RegisterType <SubscriptionService>().As <ISubscriptionService>().SingleInstance(); }
/// <summary> /// Register services and interfaces /// </summary> /// <param name="builder">Container builder</param> /// <param name="typeFinder">Type finder</param> /// <param name="config">Config</param> public virtual void Register(ContainerBuilder builder, ITypeFinder typeFinder, ArticleConfig config) { //HTTP context and other related stuff builder.Register(c => //register FakeHttpContext when HttpContext is not available HttpContext.Current != null ? (new HttpContextWrapper(HttpContext.Current) as HttpContextBase) : (new FakeHttpContext("~/") as HttpContextBase)) .As <HttpContextBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Request) .As <HttpRequestBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Response) .As <HttpResponseBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Server) .As <HttpServerUtilityBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Session) .As <HttpSessionStateBase>() .InstancePerLifetimeScope(); //web helper builder.RegisterType <WebHelper>().As <IWebHelper>().InstancePerLifetimeScope(); //user agent helper //controllers // builder.Register(c => new CacheIInterceptor()); builder.RegisterControllers(typeFinder.GetAssemblies().ToArray()); //data layer builder.Register(x => new EfDataProviderManager(config)).As <BaseDataProviderManager>().InstancePerDependency(); builder.Register(x => x.Resolve <BaseDataProviderManager>().LoadDataProvider()).As <IDataProvider>().InstancePerDependency(); var efDataProviderManager = new EfDataProviderManager(config); var dataProvider = efDataProviderManager.LoadDataProvider(); dataProvider.InitDatabase(config.DatabaseInstallModel); builder.Register <IDbContext>(c => new BaseObjectContext(config.MsSqlConnectionString)).InstancePerLifetimeScope(); //builder.Register<IWriteDbContext>(c => new WriteObjectContext(config.MsSqlWriteConnectionString)).InstancePerLifetimeScope(); builder.RegisterGeneric(typeof(EfRepository <>)).As(typeof(IRepository <>)).InstancePerLifetimeScope(); //cache managers builder.RegisterType <MemoryCacheManager>().As <ICacheManager>().SingleInstance(); //services //use static cache (between HTTP requests) builder.RegisterType <DefaultLogger>().As <ILogger>().InstancePerLifetimeScope(); builder.RegisterType <DbContextFactory>().As <IDbContextFactory>().InstancePerLifetimeScope(); builder.RegisterType <SingleStrategy>().As <IReadDbStrategy>().InstancePerLifetimeScope(); //use static cache (between HTTP requests) bool databaseInstalled = DataSettingsHelper.DatabaseIsInstalled(config); if (!databaseInstalled) { //builder.RegisterType<CodeFirstInstallationService>().As<IInstallationService>().InstancePerLifetimeScope(); //installation service //if (config.UseFastInstallationService) //{ // builder.RegisterType<SqlFileInstallationService>().As<IInstallationService>().InstancePerLifetimeScope(); //} //else //{ // builder.RegisterType<CodeFirstInstallationService>().As<IInstallationService>().InstancePerLifetimeScope(); //} } //Register event consumers var consumers = typeFinder.FindClassesOfType(typeof(IConsumer <>)).ToList(); foreach (var consumer in consumers) { builder.RegisterType(consumer) .As(consumer.FindInterfaces((type, criteria) => { var isMatch = type.IsGenericType && ((Type)criteria).IsAssignableFrom(type.GetGenericTypeDefinition()); return(isMatch); }, typeof(IConsumer <>))) .InstancePerLifetimeScope(); } builder.RegisterType <EventPublisher>().As <IEventPublisher>().InstancePerLifetimeScope(); builder.RegisterType <SubscriptionService>().As <ISubscriptionService>().InstancePerLifetimeScope(); //unit of work builder.RegisterType <UnitOfWorkDbContextProvider>().As <IDbContextProvider>().InstancePerLifetimeScope(); builder.RegisterType <CallContextCurrentUnitOfWorkProvider>().As <IUnitOfWorkProvider>().InstancePerLifetimeScope(); builder.RegisterType <EfUnitOfWork>().As <IUnitOfWork>().InstancePerLifetimeScope(); builder.RegisterType <UnitOfWorkManager>().As <IUnitOfWorkManager>().InstancePerLifetimeScope(); builder.RegisterType <DbContextEfTransactionStrategy>().As <IEfTransactionStrategy>().InstancePerLifetimeScope(); builder.RegisterType <CallContextAmbientDataContext>().As <IAmbientDataContext>().SingleInstance(); builder.RegisterGeneric(typeof(DataContextAmbientScopeProvider <>)).As(typeof(IAmbientScopeProvider <>)).InstancePerLifetimeScope(); //serivce //Article builder.RegisterType <PayService>().As <IPayService>().InstancePerLifetimeScope().EnableClassInterceptors(); //Auth builder.RegisterType <RoomService>().As <IRoomService>().InstancePerLifetimeScope().EnableClassInterceptors(); //Author builder.RegisterType <UserService>().As <IUserService>().InstancePerLifetimeScope().EnableClassInterceptors(); //CounterService builder.RegisterType <SysService>().As <ISysService>().InstancePerLifetimeScope().EnableClassInterceptors(); //CounterService builder.RegisterType <RedisCacheManager>().As <IRedis>().InstancePerLifetimeScope(); }
public virtual void Register(ContainerBuilder builder, ITypeFinder typeFinder, ACConfig config) { // HttpContext builder.Register(c => new HttpContextWrapper(HttpContext.Current) as HttpContextBase).As <HttpContextBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Request) .As <HttpRequestBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Response) .As <HttpResponseBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Server) .As <HttpServerUtilityBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Session) .As <HttpSessionStateBase>() .InstancePerLifetimeScope(); // web helper builder.RegisterType <WebHelper>().As <IWebHelper>().InstancePerLifetimeScope(); // controllers builder.RegisterControllers(typeFinder.GetAssemblies().ToArray()); // data layer var dataSettingsManager = new DataSettingsManager(); var dataProviderSettings = dataSettingsManager.LoadSettings(); builder.Register(c => dataSettingsManager.LoadSettings()).As <DataSettings>(); builder.Register(x => new EfDataProviderManager(x.Resolve <DataSettings>())).As <BaseDataProviderManager>().InstancePerDependency(); builder.Register(x => x.Resolve <BaseDataProviderManager>().LoadDataProvider()).As <IDataProvider>().InstancePerDependency(); if (dataProviderSettings != null && dataProviderSettings.IsValid()) { var efDataProviderManager = new EfDataProviderManager(dataSettingsManager.LoadSettings()); var dataProvider = efDataProviderManager.LoadDataProvider(); dataProvider.InitConnectionFactory(); builder.Register <IDbContext>(c => new ACObjectContext(dataProviderSettings.DataConnectionString)).InstancePerLifetimeScope(); } else { builder.Register <IDbContext>(c => new ACObjectContext(dataSettingsManager.LoadSettings().DataConnectionString)).InstancePerLifetimeScope(); } builder.RegisterGeneric(typeof(GenericRepository <>)).As(typeof(IRepository <>)).InstancePerLifetimeScope(); // work context builder.RegisterType <WebWorkContext>().As <IWorkContext>().InstancePerLifetimeScope(); // services builder.RegisterType <PageHeadBuilder>().As <IPageHeadBuilder>().InstancePerLifetimeScope(); builder.RegisterType <TopicService>().As <ITopicService>().InstancePerLifetimeScope(); builder.RegisterType <FormsAuthenticationService>().As <IAuthenticationService>().InstancePerLifetimeScope(); builder.RegisterType <UserService>().As <IUserService>().InstancePerLifetimeScope(); builder.RegisterType <LanguageService>().As <ILanguageService>().InstancePerLifetimeScope(); builder.RegisterType <CategoryService>().As <ICategoryService>().InstancePerLifetimeScope(); builder.RegisterType <ItemService>().As <IItemService>().InstancePerLifetimeScope(); builder.RegisterType <PictureService>().As <IPictureService>().InstancePerLifetimeScope(); builder.RegisterType <ShoppingCartService>().As <IShoppingCartService>().InstancePerLifetimeScope(); builder.RegisterType <OrderService>().As <IOrderService>().InstancePerLifetimeScope(); builder.RegisterType <UserRegistrationService>().As <IUserRegistrationService>().InstancePerLifetimeScope(); builder.RegisterType <EncryptionService>().As <IEncryptionService>().InstancePerLifetimeScope(); builder.RegisterType <LocalizationService>().As <ILocalizationService>().InstancePerLifetimeScope(); builder.RegisterType <GenericAttributeService>().As <IGenericAttributeService>().InstancePerLifetimeScope(); builder.RegisterType <RoutePublisher>().As <IRoutePublisher>().SingleInstance(); }
/// <summary> /// Register services and interfaces /// </summary> /// <param name="builder">Container builder</param> /// <param name="typeFinder">Type finder</param> /// <param name="config">Config</param> public virtual void Register(ContainerBuilder builder, ITypeFinder typeFinder, WeiConfig config) { //HTTP context and other related stuff builder.Register(c => (new HttpContextWrapper(HttpContext.Current) as HttpContextBase)) .As <HttpContextBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Request) .As <HttpRequestBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Response) .As <HttpResponseBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Server) .As <HttpServerUtilityBase>() .InstancePerLifetimeScope(); //web helper builder.RegisterType <WebHelper>().As <IWebHelper>().InstancePerLifetimeScope(); //controllers builder.RegisterControllers(typeFinder.GetAssemblies().ToArray()); builder.RegisterApiControllers(typeFinder.GetAssemblies().ToArray()); //data layer var dataSettingsManager = new DataSettingsManager(); var dataProviderSettings = dataSettingsManager.LoadSettings(); builder.Register(c => dataSettingsManager.LoadSettings()).As <DataSettings>(); builder.Register(x => new EfDataProviderManager(x.Resolve <DataSettings>())).As <BaseDataProviderManager>().InstancePerDependency(); builder.Register(x => x.Resolve <BaseDataProviderManager>().LoadDataProvider()).As <IDataProvider>().InstancePerDependency(); if (dataProviderSettings != null && dataProviderSettings.IsValid()) { var efDataProviderManager = new EfDataProviderManager(dataSettingsManager.LoadSettings()); var dataProvider = efDataProviderManager.LoadDataProvider(); dataProvider.InitConnectionFactory(); builder.Register <IDbContext>(c => new WeiObjectContext("DefaultConnection")).InstancePerLifetimeScope(); } else { builder.Register <IDbContext>(c => new WeiObjectContext("DefaultConnection")).InstancePerLifetimeScope(); } builder.RegisterGeneric(typeof(EfRepository <>)).As(typeof(IRepository <>)).InstancePerLifetimeScope(); builder.RegisterType <MemoryCacheManager>().As <ICacheManager>().Named <ICacheManager>("wei_cache_static").SingleInstance(); builder.RegisterType <PerRequestCacheManager>().As <ICacheManager>().Named <ICacheManager>("wei_cache_per_request").InstancePerLifetimeScope(); //work context builder.RegisterType <WebWorkContext>().As <IWorkContext>().InstancePerLifetimeScope(); builder.RegisterType <DBHelp>().As <DBHelp>().InstancePerLifetimeScope(); builder.RegisterType <CommonService>().As <ICommonService>().InstancePerLifetimeScope(); builder.RegisterType <DownloadService>().As <IDownloadService>().InstancePerLifetimeScope(); builder.RegisterType <PropertyService>().As <IPropertyService>().InstancePerLifetimeScope(); builder.RegisterType <WordsSubstitutionService>().As <IWordsSubstitutionService>().InstancePerLifetimeScope(); builder.RegisterType <DBService>().As <IDBService>().InstancePerLifetimeScope(); builder.RegisterType <UserService>().As <IUserService>().InstancePerLifetimeScope(); builder.RegisterType <UserAttributeService>().As <IUserAttributeService>().InstancePerLifetimeScope(); builder.RegisterType <FormsAuthenticationService>().As <IAuthenticationService>().InstancePerLifetimeScope(); builder.RegisterType <UserRegistrationService>().As <IUserRegistrationService>().InstancePerLifetimeScope(); builder.RegisterType <DefaultLogger>().As <ILogger>().InstancePerLifetimeScope(); builder.RegisterType <RoutePublisher>().As <IRoutePublisher>().SingleInstance(); builder.RegisterType <UserAnswerService>().As <IUserAnswerService>().InstancePerLifetimeScope(); builder.RegisterType <QuestionBankService>().As <IQuestionBankService>().InstancePerLifetimeScope(); //Register event consumers var consumers = typeFinder.FindClassesOfType(typeof(IConsumer <>)).ToList(); foreach (var consumer in consumers) { builder.RegisterType(consumer) .As(consumer.FindInterfaces((type, criteria) => { var isMatch = type.IsGenericType && ((Type)criteria).IsAssignableFrom(type.GetGenericTypeDefinition()); return(isMatch); }, typeof(IConsumer <>))) .InstancePerLifetimeScope(); } builder.RegisterType <EventPublisher>().As <IEventPublisher>().SingleInstance(); builder.RegisterType <SubscriptionService>().As <ISubscriptionService>().SingleInstance(); }
public virtual void Register(ContainerBuilder builder, ITypeFinder typeFinder) { //HTTP context and other related stuff builder.Register(c => //register FakeHttpContext when HttpContext is not available HttpContext.Current != null ? (new HttpContextWrapper(HttpContext.Current) as HttpContextBase) : (new FakeHttpContext("~/") as HttpContextBase)) .As <HttpContextBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Request) .As <HttpRequestBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Response) .As <HttpResponseBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Server) .As <HttpServerUtilityBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Session) .As <HttpSessionStateBase>() .InstancePerLifetimeScope(); //WEB Helpers builder.RegisterType <WebHelper>().As <IWebHelper>().InstancePerLifetimeScope(); //controllers builder.RegisterControllers(typeFinder.GetAssemblies().ToArray()); builder.RegisterApiControllers(typeFinder.GetAssemblies().ToArray());//注册api容器的实现 //data layer var dataSettingsManager = new DataSettingsManager(); var dataProviderSettings = dataSettingsManager.LoadSettings(); builder.Register(c => dataSettingsManager.LoadSettings()).As <DataSettings>(); builder.Register(x => new EfDataProviderManager(x.Resolve <DataSettings>())).As <BaseDataProviderManager>().InstancePerDependency(); builder.Register(x => (IEfDataProvider)x.Resolve <BaseDataProviderManager>().LoadDataProvider()).As <IDataProvider>().InstancePerDependency(); builder.Register(x => (IEfDataProvider)x.Resolve <BaseDataProviderManager>().LoadDataProvider()).As <IEfDataProvider>().InstancePerDependency(); builder.Register(x => x.Resolve <BaseDataProviderManager>().LoadDataProvider()).As <IDataProvider>().InstancePerDependency(); if (dataProviderSettings != null && dataProviderSettings.IsValid()) { var efDataProviderManager = new EfDataProviderManager(dataSettingsManager.LoadSettings()); var dataProvider = efDataProviderManager.LoadDataProvider(); dataProvider.InitConnectionFactory(); builder.Register <IDbContext>(c => new ObjectContextExt(dataProviderSettings.DataConnectionString)).InstancePerLifetimeScope(); } else { builder.Register <IDbContext>(c => new ObjectContextExt(dataSettingsManager.LoadSettings().DataConnectionString)).InstancePerLifetimeScope(); } builder.RegisterGeneric(typeof(EfRepository <>)).As(typeof(IRepository <>)).InstancePerLifetimeScope(); //cache manager builder.RegisterType <MemoryCacheManager>().As <ICacheManager>().Named <ICacheManager>("JNKJ_cache_static").SingleInstance(); builder.RegisterType <PerRequestCacheManager>().As <ICacheManager>().Named <ICacheManager>("JNKJ_cache_per_request").InstancePerLifetimeScope(); builder.RegisterSource(new SettingsSource()); #region 将自定义接口注入容器 builder.RegisterType <QiniuService>().As <IQiniuService>().InstancePerLifetimeScope(); //七牛服务 builder.RegisterType <SubContractorService>().As <ISubContractor>().InstancePerLifetimeScope(); //企业信息--企业信息 builder.RegisterType <UserInfoService>().As <IUserInfo>().InstancePerLifetimeScope(); //用户接口 builder.RegisterType <EnterpriseInfoService>().As <IEnterpriseInfoService>().InstancePerLifetimeScope(); //企业接口 builder.RegisterType <TokenService>().As <ITokenService>().InstancePerLifetimeScope(); //Token验证 builder.RegisterType <TencentImService>().As <ITencentImService>().InstancePerLifetimeScope(); //腾讯IM云通信 builder.RegisterType <UserLoginService>().As <IUserLogin>().InstancePerLifetimeScope(); //登陆 builder.RegisterType <DeptInfoService>().As <IDeptInfoService>().InstancePerLifetimeScope(); //组织架构 builder.RegisterType <MenuOrButtonService>().As <IMenuOrButtonService>().InstancePerLifetimeScope(); //菜单和按钮 builder.RegisterType <RolesService>().As <IRolesService>().InstancePerLifetimeScope(); //角色权限 builder.RegisterType <RelationshipService>().As <IRelationshipService>().InstancePerLifetimeScope(); builder.RegisterType <SmsService>().As <ISmsService>().InstancePerLifetimeScope(); //角色权限 builder.RegisterType <RelationshipService>().As <IRelationshipService>().InstancePerLifetimeScope(); #endregion //Register event consumers #region service register #endregion }
/// <summary> /// Register services and interfaces /// </summary> /// <param name="builder">Container builder</param> /// <param name="typeFinder">Type finder</param> /// <param name="config">Config</param> public virtual void Register(ContainerBuilder builder, ITypeFinder typeFinder, NopConfig config) { //web helper builder.RegisterType <WebHelper>().As <IWebHelper>().InstancePerLifetimeScope(); //user agent helper builder.RegisterType <UserAgentHelper>().As <IUserAgentHelper>().InstancePerLifetimeScope(); //data layer var dataSettingsManager = new DataSettingsManager(); var dataProviderSettings = dataSettingsManager.LoadSettings(); builder.Register(c => dataSettingsManager.LoadSettings()).As <DataSettings>(); builder.Register(x => new EfDataProviderManager(x.Resolve <DataSettings>())).As <BaseDataProviderManager>().InstancePerDependency(); builder.Register(x => x.Resolve <BaseDataProviderManager>().LoadDataProvider()).As <IDataProvider>().InstancePerDependency(); if (dataProviderSettings != null && dataProviderSettings.IsValid()) { var efDataProviderManager = new EfDataProviderManager(dataSettingsManager.LoadSettings()); var dataProvider = efDataProviderManager.LoadDataProvider(); dataProvider.InitConnectionFactory(); builder.Register <IDbContext>(c => new NopObjectContext(dataProviderSettings.DataConnectionString)).InstancePerLifetimeScope(); } else { builder.Register <IDbContext>(c => new NopObjectContext(dataSettingsManager.LoadSettings().DataConnectionString)).InstancePerLifetimeScope(); } //repositories builder.RegisterGeneric(typeof(EfRepository <>)).As(typeof(IRepository <>)).InstancePerLifetimeScope(); //plugins builder.RegisterType <PluginFinder>().As <IPluginFinder>().InstancePerLifetimeScope(); builder.RegisterType <OfficialFeedManager>().As <IOfficialFeedManager>().InstancePerLifetimeScope(); //cache manager builder.RegisterType <PerRequestCacheManager>().As <ICacheManager>().InstancePerLifetimeScope(); //static cache manager if (config.RedisCachingEnabled) { builder.RegisterType <RedisConnectionWrapper>().As <IRedisConnectionWrapper>().SingleInstance(); builder.RegisterType <RedisCacheManager>().As <IStaticCacheManager>().InstancePerLifetimeScope(); } else { builder.RegisterType <MemoryCacheManager>().As <IStaticCacheManager>().SingleInstance(); } //work context builder.RegisterType <WebWorkContext>().As <IWorkContext>().InstancePerLifetimeScope(); //store context builder.RegisterType <WebStoreContext>().As <IStoreContext>().InstancePerLifetimeScope(); //services builder.RegisterType <BackInStockSubscriptionService>().As <IBackInStockSubscriptionService>().InstancePerLifetimeScope(); builder.RegisterType <CategoryService>().As <ICategoryService>().InstancePerLifetimeScope(); builder.RegisterType <CompareProductsService>().As <ICompareProductsService>().InstancePerLifetimeScope(); builder.RegisterType <RecentlyViewedProductsService>().As <IRecentlyViewedProductsService>().InstancePerLifetimeScope(); builder.RegisterType <ManufacturerService>().As <IManufacturerService>().InstancePerLifetimeScope(); builder.RegisterType <PriceFormatter>().As <IPriceFormatter>().InstancePerLifetimeScope(); builder.RegisterType <ProductAttributeFormatter>().As <IProductAttributeFormatter>().InstancePerLifetimeScope(); builder.RegisterType <ProductAttributeParser>().As <IProductAttributeParser>().InstancePerLifetimeScope(); builder.RegisterType <ProductAttributeService>().As <IProductAttributeService>().InstancePerLifetimeScope(); builder.RegisterType <ProductService>().As <IProductService>().InstancePerLifetimeScope(); builder.RegisterType <CopyProductService>().As <ICopyProductService>().InstancePerLifetimeScope(); builder.RegisterType <SpecificationAttributeService>().As <ISpecificationAttributeService>().InstancePerLifetimeScope(); builder.RegisterType <ProductTemplateService>().As <IProductTemplateService>().InstancePerLifetimeScope(); builder.RegisterType <CategoryTemplateService>().As <ICategoryTemplateService>().InstancePerLifetimeScope(); builder.RegisterType <ManufacturerTemplateService>().As <IManufacturerTemplateService>().InstancePerLifetimeScope(); builder.RegisterType <TopicTemplateService>().As <ITopicTemplateService>().InstancePerLifetimeScope(); builder.RegisterType <ProductTagService>().As <IProductTagService>().InstancePerLifetimeScope(); builder.RegisterType <AddressAttributeFormatter>().As <IAddressAttributeFormatter>().InstancePerLifetimeScope(); builder.RegisterType <AddressAttributeParser>().As <IAddressAttributeParser>().InstancePerLifetimeScope(); builder.RegisterType <AddressAttributeService>().As <IAddressAttributeService>().InstancePerLifetimeScope(); builder.RegisterType <AddressService>().As <IAddressService>().InstancePerLifetimeScope(); builder.RegisterType <AffiliateService>().As <IAffiliateService>().InstancePerLifetimeScope(); builder.RegisterType <VendorService>().As <IVendorService>().InstancePerLifetimeScope(); builder.RegisterType <SearchTermService>().As <ISearchTermService>().InstancePerLifetimeScope(); builder.RegisterType <GenericAttributeService>().As <IGenericAttributeService>().InstancePerLifetimeScope(); builder.RegisterType <FulltextService>().As <IFulltextService>().InstancePerLifetimeScope(); builder.RegisterType <MaintenanceService>().As <IMaintenanceService>().InstancePerLifetimeScope(); builder.RegisterType <CustomerAttributeFormatter>().As <ICustomerAttributeFormatter>().InstancePerLifetimeScope(); builder.RegisterType <CustomerAttributeParser>().As <ICustomerAttributeParser>().InstancePerLifetimeScope(); builder.RegisterType <CustomerAttributeService>().As <ICustomerAttributeService>().InstancePerLifetimeScope(); builder.RegisterType <CustomerService>().As <ICustomerService>().InstancePerLifetimeScope(); builder.RegisterType <CustomerRegistrationService>().As <ICustomerRegistrationService>().InstancePerLifetimeScope(); builder.RegisterType <CustomerReportService>().As <ICustomerReportService>().InstancePerLifetimeScope(); builder.RegisterType <PermissionService>().As <IPermissionService>().InstancePerLifetimeScope(); builder.RegisterType <AclService>().As <IAclService>().InstancePerLifetimeScope(); builder.RegisterType <PriceCalculationService>().As <IPriceCalculationService>().InstancePerLifetimeScope(); builder.RegisterType <GeoLookupService>().As <IGeoLookupService>().InstancePerLifetimeScope(); builder.RegisterType <CountryService>().As <ICountryService>().InstancePerLifetimeScope(); builder.RegisterType <CurrencyService>().As <ICurrencyService>().InstancePerLifetimeScope(); builder.RegisterType <MeasureService>().As <IMeasureService>().InstancePerLifetimeScope(); builder.RegisterType <StateProvinceService>().As <IStateProvinceService>().InstancePerLifetimeScope(); builder.RegisterType <StoreService>().As <IStoreService>().InstancePerLifetimeScope(); builder.RegisterType <StoreMappingService>().As <IStoreMappingService>().InstancePerLifetimeScope(); builder.RegisterType <DiscountService>().As <IDiscountService>().InstancePerLifetimeScope(); builder.RegisterType <LocalizationService>().As <ILocalizationService>().InstancePerLifetimeScope(); builder.RegisterType <LocalizedEntityService>().As <ILocalizedEntityService>().InstancePerLifetimeScope(); builder.RegisterType <LanguageService>().As <ILanguageService>().InstancePerLifetimeScope(); builder.RegisterType <DownloadService>().As <IDownloadService>().InstancePerLifetimeScope(); builder.RegisterType <MessageTemplateService>().As <IMessageTemplateService>().InstancePerLifetimeScope(); builder.RegisterType <QueuedEmailService>().As <IQueuedEmailService>().InstancePerLifetimeScope(); builder.RegisterType <NewsLetterSubscriptionService>().As <INewsLetterSubscriptionService>().InstancePerLifetimeScope(); builder.RegisterType <CampaignService>().As <ICampaignService>().InstancePerLifetimeScope(); builder.RegisterType <EmailAccountService>().As <IEmailAccountService>().InstancePerLifetimeScope(); builder.RegisterType <WorkflowMessageService>().As <IWorkflowMessageService>().InstancePerLifetimeScope(); builder.RegisterType <MessageTokenProvider>().As <IMessageTokenProvider>().InstancePerLifetimeScope(); builder.RegisterType <Tokenizer>().As <ITokenizer>().InstancePerLifetimeScope(); builder.RegisterType <EmailSender>().As <IEmailSender>().InstancePerLifetimeScope(); builder.RegisterType <CheckoutAttributeFormatter>().As <ICheckoutAttributeFormatter>().InstancePerLifetimeScope(); builder.RegisterType <CheckoutAttributeParser>().As <ICheckoutAttributeParser>().InstancePerLifetimeScope(); builder.RegisterType <CheckoutAttributeService>().As <ICheckoutAttributeService>().InstancePerLifetimeScope(); builder.RegisterType <GiftCardService>().As <IGiftCardService>().InstancePerLifetimeScope(); builder.RegisterType <OrderService>().As <IOrderService>().InstancePerLifetimeScope(); builder.RegisterType <OrderReportService>().As <IOrderReportService>().InstancePerLifetimeScope(); builder.RegisterType <OrderProcessingService>().As <IOrderProcessingService>().InstancePerLifetimeScope(); builder.RegisterType <OrderTotalCalculationService>().As <IOrderTotalCalculationService>().InstancePerLifetimeScope(); builder.RegisterType <ReturnRequestService>().As <IReturnRequestService>().InstancePerLifetimeScope(); builder.RegisterType <RewardPointService>().As <IRewardPointService>().InstancePerLifetimeScope(); builder.RegisterType <ShoppingCartService>().As <IShoppingCartService>().InstancePerLifetimeScope(); builder.RegisterType <CustomNumberFormatter>().As <ICustomNumberFormatter>().InstancePerLifetimeScope(); builder.RegisterType <PaymentService>().As <IPaymentService>().InstancePerLifetimeScope(); builder.RegisterType <EncryptionService>().As <IEncryptionService>().InstancePerLifetimeScope(); builder.RegisterType <CookieAuthenticationService>().As <IAuthenticationService>().InstancePerLifetimeScope(); builder.RegisterType <UrlRecordService>().As <IUrlRecordService>().InstancePerLifetimeScope(); builder.RegisterType <ShipmentService>().As <IShipmentService>().InstancePerLifetimeScope(); builder.RegisterType <ShippingService>().As <IShippingService>().InstancePerLifetimeScope(); builder.RegisterType <DateRangeService>().As <IDateRangeService>().InstancePerLifetimeScope(); builder.RegisterType <TaxCategoryService>().As <ITaxCategoryService>().InstancePerLifetimeScope(); builder.RegisterType <TaxService>().As <ITaxService>().InstancePerLifetimeScope(); builder.RegisterType <DefaultLogger>().As <ILogger>().InstancePerLifetimeScope(); builder.RegisterType <CustomerActivityService>().As <ICustomerActivityService>().InstancePerLifetimeScope(); builder.RegisterType <ForumService>().As <IForumService>().InstancePerLifetimeScope(); builder.RegisterType <PollService>().As <IPollService>().InstancePerLifetimeScope(); builder.RegisterType <BlogService>().As <IBlogService>().InstancePerLifetimeScope(); builder.RegisterType <WidgetService>().As <IWidgetService>().InstancePerLifetimeScope(); builder.RegisterType <TopicService>().As <ITopicService>().InstancePerLifetimeScope(); builder.RegisterType <NewsService>().As <INewsService>().InstancePerLifetimeScope(); builder.RegisterType <DateTimeHelper>().As <IDateTimeHelper>().InstancePerLifetimeScope(); builder.RegisterType <SitemapGenerator>().As <ISitemapGenerator>().InstancePerLifetimeScope(); builder.RegisterType <PageHeadBuilder>().As <IPageHeadBuilder>().InstancePerLifetimeScope(); builder.RegisterType <ScheduleTaskService>().As <IScheduleTaskService>().InstancePerLifetimeScope(); builder.RegisterType <ExportManager>().As <IExportManager>().InstancePerLifetimeScope(); builder.RegisterType <ImportManager>().As <IImportManager>().InstancePerLifetimeScope(); builder.RegisterType <PdfService>().As <IPdfService>().InstancePerLifetimeScope(); builder.RegisterType <UploadService>().As <IUploadService>().InstancePerLifetimeScope(); builder.RegisterType <ThemeProvider>().As <IThemeProvider>().InstancePerLifetimeScope(); builder.RegisterType <ThemeContext>().As <IThemeContext>().InstancePerLifetimeScope(); builder.RegisterType <ExternalAuthenticationService>().As <IExternalAuthenticationService>().InstancePerLifetimeScope(); builder.RegisterType <RoutePublisher>().As <IRoutePublisher>().SingleInstance(); builder.RegisterType <EventPublisher>().As <IEventPublisher>().SingleInstance(); builder.RegisterType <SubscriptionService>().As <ISubscriptionService>().SingleInstance(); builder.RegisterType <SettingService>().As <ISettingService>().InstancePerLifetimeScope(); builder.RegisterType <BucketService>().As <IBucketService>().InstancePerLifetimeScope(); builder.RegisterType <BucketTypeService>().As <IBucketTypeService>().InstancePerLifetimeScope(); builder.RegisterType <ActionContextAccessor>().As <IActionContextAccessor>().InstancePerLifetimeScope(); builder.RegisterType <BucketItemService>().As <IBucketItemService>().InstancePerLifetimeScope(); builder.RegisterType <ContributionService>().As <IContributionService>().InstancePerLifetimeScope(); //register all settings builder.RegisterSource(new SettingsSource()); //picture service if (!string.IsNullOrEmpty(config.AzureBlobStorageConnectionString)) { builder.RegisterType <AzurePictureService>().As <IPictureService>().InstancePerLifetimeScope(); } else { builder.RegisterType <PictureService>().As <IPictureService>().InstancePerLifetimeScope(); } //installation service if (!DataSettingsHelper.DatabaseIsInstalled()) { if (config.UseFastInstallationService) { builder.RegisterType <SqlFileInstallationService>().As <IInstallationService>().InstancePerLifetimeScope(); } else { builder.RegisterType <CodeFirstInstallationService>().As <IInstallationService>().InstancePerLifetimeScope(); } } //event consumers var consumers = typeFinder.FindClassesOfType(typeof(IConsumer <>)).ToList(); foreach (var consumer in consumers) { builder.RegisterType(consumer) .As(consumer.FindInterfaces((type, criteria) => { var isMatch = type.IsGenericType && ((Type)criteria).IsAssignableFrom(type.GetGenericTypeDefinition()); return(isMatch); }, typeof(IConsumer <>))) .InstancePerLifetimeScope(); } }
public void Register(ContainerBuilder builder, ITypeFinder typeFinder, NopConfig config) { //HTTP上下文注册 //builder.Register(c => // //register FakeHttpContext when HttpContext is not available // HttpContext.Current != null ? // (new HttpContextWrapper(HttpContext.Current) as HttpContextBase) : // (new FakeHttpContext("~/") as HttpContextBase)) // .As<HttpContextBase>() // .InstancePerLifetimeScope(); //builder.Register(c => (new HttpContextWrapper(HttpContext.Current) as HttpContextBase)) // .As<HttpContextBase>() // .InstancePerLifetimeScope(); builder.Register(c => (new HttpContextWrapper(HttpContext.Current) as HttpContextBase)) .As <HttpContextBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Request) .As <HttpRequestBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Response) .As <HttpResponseBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Server) .As <HttpServerUtilityBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Session) .As <HttpSessionStateBase>() .InstancePerLifetimeScope(); //注册,MVC的controllers builder.RegisterControllers(typeFinder.GetAssemblies().ToArray()); //注册数据层,如dbcontext,manager,repository,供持久化层的操作; var dataSettingsManager = new DataSettingsManager(); var dataProviderSettings = dataSettingsManager.LoadSettings(); builder.Register(c => dataSettingsManager.LoadSettings()).As <DataSettings>(); builder.Register(x => new EfDataProviderManager(x.Resolve <DataSettings>())).As <BaseDataProviderManager>().InstancePerDependency(); //注册缓存管理的相关类 //if (config.RedisCachingEnabled) //{ // builder.RegisterType<RedisConnectionWrapper>().As<IRedisConnectionWrapper>().SingleInstance(); // builder.RegisterType<RedisCacheManager>().As<ICacheManager>().Named<ICacheManager>("nop_cache_static").InstancePerLifetimeScope(); //} //else //{ //在IoC容器中把MemoryCacheManager注册为ICacheManager,并且命名为nop_cache_static。 builder.RegisterType <MemoryCacheManager>().As <ICacheManager>().Named <ICacheManager>("nop_cache_static").SingleInstance(); //} builder.RegisterType <PageHeadBuilder>().As <IPageHeadBuilder>().InstancePerLifetimeScope(); builder.RegisterType <SettingService>().As <ISettingService>().InstancePerLifetimeScope(); builder.RegisterSource(new SettingsSource()); builder.Register(x => x.Resolve <BaseDataProviderManager>().LoadDataProvider()).As <IDataProvider>().InstancePerDependency(); if (dataProviderSettings != null && dataProviderSettings.IsValid()) { var efDataProviderManager = new EfDataProviderManager(dataSettingsManager.LoadSettings()); var dataProvider = efDataProviderManager.LoadDataProvider(); dataProvider.InitConnectionFactory(); builder.Register <IDbContext>(c => new FrameworkObjectContext(dataProviderSettings.DataConnectionString)).InstancePerLifetimeScope(); } else { builder.Register <IDbContext>(c => new FrameworkObjectContext(dataSettingsManager.LoadSettings().DataConnectionString)).InstancePerLifetimeScope(); } //注册插件plugins builder.RegisterType <PluginFinder>().As <IPluginFinder>().InstancePerLifetimeScope(); //注册helper帮助类 builder.RegisterType <WebHelper>().As <IWebHelper>().InstancePerLifetimeScope(); builder.RegisterGeneric(typeof(EfRepository <>)).As(typeof(IRepository <>)).InstancePerLifetimeScope(); builder.RegisterType <ScheduleTaskService>().As <IScheduleTaskService>().InstancePerLifetimeScope(); builder.RegisterType <LoggerService>().As <ILogger>().InstancePerLifetimeScope(); builder.RegisterType <RoutePublisher>().As <IRoutePublisher>().SingleInstance(); //use static cache (between HTTP requests) builder.RegisterType <UrlRecordService>().As <IUrlRecordService>() .WithParameter(ResolvedParameter.ForNamed <ICacheManager>("nop_cache_static")) .InstancePerLifetimeScope(); //Register event consumers var consumers = typeFinder.FindClassesOfType(typeof(IConsumer <>)).ToList(); foreach (var consumer in consumers) { builder.RegisterType(consumer) .As(consumer.FindInterfaces((type, criteria) => { var isMatch = type.IsGenericType && ((Type)criteria).IsAssignableFrom(type.GetGenericTypeDefinition()); return(isMatch); }, typeof(IConsumer <>))) .InstancePerLifetimeScope(); } builder.RegisterType <EventPublisher>().As <IEventPublisher>().SingleInstance(); builder.RegisterType <SubscriptionService>().As <ISubscriptionService>().SingleInstance(); builder.RegisterType <EmailSender>().As <IEmailSender>().InstancePerLifetimeScope(); builder.RegisterType <QueuedEmailService>().As <IQueuedEmailService>().InstancePerLifetimeScope(); builder.RegisterType <EmailAccountService>().As <IEmailAccountService>().InstancePerLifetimeScope(); builder.RegisterType <PictureService>().As <IPictureService>().InstancePerLifetimeScope(); builder.RegisterType <WidgetService>().As <IWidgetService>().InstancePerLifetimeScope(); builder.RegisterType <ThemeProvider>().As <IThemeProvider>().InstancePerLifetimeScope(); builder.RegisterType <ThemeContext>().As <IThemeContext>().InstancePerLifetimeScope(); builder.RegisterType <GenericAttributeService>().As <IGenericAttributeService>().InstancePerLifetimeScope(); //常规属性 builder.RegisterType <CustomerService>().As <ICustomerService>().InstancePerLifetimeScope(); //用户 builder.RegisterType <WebWorkContext>().As <IWorkContext>().InstancePerLifetimeScope(); //上下文对象 builder.RegisterType <PermissionService>().As <IPermissionService>().InstancePerLifetimeScope(); //权限 builder.RegisterType <FormsAuthenticationService>().As <IAuthenticationService>().InstancePerLifetimeScope(); //认证 builder.RegisterType <CustomerRegistrationService>().As <ICustomerRegistrationService>().InstancePerLifetimeScope(); //验证登录注册 builder.RegisterType <EncryptionService>().As <IEncryptionService>().InstancePerLifetimeScope(); //加密服务 builder.RegisterType <CustomerActivityService>().As <ICustomerActivityService>().InstancePerLifetimeScope(); //用户日志 builder.RegisterType <NewsService>().As <INewsService>().InstancePerLifetimeScope(); //新闻管理 builder.RegisterType <ContactMessageService>().As <IContactMessageService>().InstancePerLifetimeScope(); //联系管理 builder.RegisterGeneric(typeof(BaseService <>)).As(typeof(IBaseService <>)).InstancePerLifetimeScope(); //Service基类管理 builder.RegisterType <CategoryService>().As <ICategoryService>().InstancePerLifetimeScope(); //商品属性管理 builder.RegisterType <ProductService>().As <IProductService>().InstancePerLifetimeScope(); //商品管理 builder.RegisterType <TermService>().As <ITermService>().InstancePerLifetimeScope(); //商品管理 builder.RegisterType <ResourcesService>().As <IResourcesService>().InstancePerLifetimeScope(); //资源文件管理 builder.RegisterType <OpenAuthenticationService>().As <IOpenAuthenticationService>().InstancePerLifetimeScope(); //开放接口授权服务 builder.RegisterType <ExternalAuthorizer>().As <IExternalAuthorizer>().InstancePerLifetimeScope(); //外部授权服务 builder.RegisterType <LanguageService>().As <ILanguageService>().InstancePerLifetimeScope(); //语言服务 builder.RegisterType <LocalizationService>().As <ILocalizationService>().InstancePerLifetimeScope(); //语言资源服务 }
public virtual void Register(ContainerBuilder builder, ITypeFinder typeFinder) { //HTTP context and other related stuff builder.Register(c => //register FakeHttpContext when HttpContext is not available //HttpContext.Current != null ? (new HttpContextWrapper(HttpContext.Current) as HttpContextBase) //(new FakeHttpContext("~/") as HttpContextBase) ) .As<HttpContextBase>() .InstancePerRequest(); builder.Register(c => c.Resolve<HttpContextBase>().Request) .As<HttpRequestBase>() .InstancePerRequest(); builder.Register(c => c.Resolve<HttpContextBase>().Response) .As<HttpResponseBase>() .InstancePerRequest(); builder.Register(c => c.Resolve<HttpContextBase>().Server) .As<HttpServerUtilityBase>() .InstancePerRequest(); builder.Register(c => c.Resolve<HttpContextBase>().Session) .As<HttpSessionStateBase>() .InstancePerRequest(); //web helper //builder.RegisterType<WebHelper>().As<IWebHelper>().InstancePerRequest(); var assemblies = typeFinder.GetAssemblies().ToArray(); //controllers builder.RegisterControllers(assemblies); //ApiControllers builder.RegisterApiControllers(assemblies); //View //builder.RegisterSource(new ViewRegistrationSource()); //data layer var dataSettingsManager = new DataSettingsManager(); var dataProviderSettings = dataSettingsManager.LoadSettings(); builder.Register(c => dataSettingsManager.LoadSettings()).As<DataSettings>(); builder.Register(x => new EfDataProviderManager(x.Resolve<DataSettings>())).As<BaseDataProviderManager>().InstancePerDependency(); builder.Register(x => x.Resolve<BaseDataProviderManager>().LoadDataProvider()).As<IDataProvider>().InstancePerDependency(); if (dataProviderSettings != null && dataProviderSettings.IsValid()) { var efDataProviderManager = new EfDataProviderManager(dataSettingsManager.LoadSettings()); var dataProvider = efDataProviderManager.LoadDataProvider(); //dataProvider.InitConnectionFactory(); ((SqlServerDataProvider)dataProvider).InitDatabase(); builder.Register<IDbContext>(c => new EfDbContext(dataProviderSettings.DataConnectionString)).InstancePerRequest(); } else { builder.Register<IDbContext>(c => new EfDbContext(dataSettingsManager.LoadSettings().DataConnectionString)).InstancePerRequest(); } builder.RegisterGeneric(typeof(EfRepository<>)).As(typeof(IRepository<>)).InstancePerRequest(); builder.RegisterAssemblyTypes(assemblies) .Where(t => typeof (IDependency).IsAssignableFrom(t) && t != typeof (IDependency)) .AsImplementedInterfaces() .InstancePerRequest(); builder.RegisterAssemblyTypes(assemblies) .Where(t => typeof (ISingletonDependency).IsAssignableFrom(t) && t != typeof (ISingletonDependency)) .AsImplementedInterfaces() .SingleInstance(); //IWorkContext builder.RegisterType<WorkContext>().As<IWorkContext>().InstancePerRequest(); //filter //builder.RegisterFilterProvider(); //todo:使用YpDependencyResolver时此方法会报空 builder.RegisterWebApiFilterProvider(GlobalConfiguration.Configuration); //注册YpHnadleError //全局注册 builder.RegisterType<YpHandleErrorAttribute>().AsExceptionFilterFor<Controller>().SingleInstance(); builder.RegisterType<YpAPIHandleErrorAttribute>().AsWebApiExceptionFilterFor<ApiController>().SingleInstance(); //单个注册 //builder.RegisterType<YpHandleErrorAttribute>().SingleInstance(); //builder.RegisterType<YpAPIHandleErrorAttribute>().SingleInstance(); //注册YpAuthorizeAttribute //全局注册 builder.RegisterType<YpAPIAuthorizeAttribute>() .AsWebApiAuthorizationFilterFor<ApiController>() .PropertiesAutowired() .InstancePerRequest(); builder.RegisterType<YpAuthorizeAttribute>() .AsAuthorizationFilterFor<Controller>() .PropertiesAutowired() .InstancePerRequest(); //单个注册 //builder.RegisterType<YpAPIAuthorizeAttribute>().PropertiesAutowired().InstancePerRequest(); //builder.RegisterType<YpAuthorizeAttribute>().PropertiesAutowired().InstancePerRequest(); }
public virtual void Register(ContainerBuilder builder, ITypeFinder typeFinder) { //HTTP context and other related stuff builder.Register(c => //register FakeHttpContext when HttpContext is not available HttpContext.Current != null ? (new HttpContextWrapper(HttpContext.Current) as HttpContextBase) : (new FakeHttpContext("~/") as HttpContextBase)) .As <HttpContextBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Request) .As <HttpRequestBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Response) .As <HttpResponseBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Server) .As <HttpServerUtilityBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Session) .As <HttpSessionStateBase>() .InstancePerLifetimeScope(); //WEB Helpers builder.RegisterType <WebHelper>().As <IWebHelper>().InstancePerLifetimeScope(); //controllers builder.RegisterControllers(typeFinder.GetAssemblies().ToArray()); builder.RegisterApiControllers(typeFinder.GetAssemblies().ToArray());//注册api容器的实现 //data layer var dataSettingsManager = new DataSettingsManager(); var dataProviderSettings = dataSettingsManager.LoadSettings(); builder.Register(c => dataSettingsManager.LoadSettings()).As <DataSettings>(); builder.Register(x => new EfDataProviderManager(x.Resolve <DataSettings>())).As <BaseDataProviderManager>().InstancePerDependency(); builder.Register(x => (IEfDataProvider)x.Resolve <BaseDataProviderManager>().LoadDataProvider()).As <IDataProvider>().InstancePerDependency(); builder.Register(x => (IEfDataProvider)x.Resolve <BaseDataProviderManager>().LoadDataProvider()).As <IEfDataProvider>().InstancePerDependency(); builder.Register(x => x.Resolve <BaseDataProviderManager>().LoadDataProvider()).As <IDataProvider>().InstancePerDependency(); if (dataProviderSettings != null && dataProviderSettings.IsValid()) { var efDataProviderManager = new EfDataProviderManager(dataSettingsManager.LoadSettings()); var dataProvider = efDataProviderManager.LoadDataProvider(); dataProvider.InitConnectionFactory(); builder.Register <IDbContext>(c => new ObjectContextExt(dataProviderSettings.DataConnectionString)).InstancePerLifetimeScope(); } else { builder.Register <IDbContext>(c => new ObjectContextExt(dataSettingsManager.LoadSettings().DataConnectionString)).InstancePerLifetimeScope(); } builder.RegisterGeneric(typeof(EfRepository <>)).As(typeof(IRepository <>)).InstancePerLifetimeScope(); //cache manager builder.RegisterType <MemoryCacheManager>().As <ICacheManager>().Named <ICacheManager>("JNKJ_cache_static").SingleInstance(); builder.RegisterType <PerRequestCacheManager>().As <ICacheManager>().Named <ICacheManager>("JNKJ_cache_per_request").InstancePerLifetimeScope(); //work context builder.RegisterType <WebWorkContext>().As <IWorkContext>().InstancePerLifetimeScope(); builder.RegisterType <GenericAttributeService>().As <IGenericAttributeService>().InstancePerLifetimeScope(); builder.RegisterType <CustomerService>().As <ICustomerService>().InstancePerLifetimeScope(); builder.RegisterType <CustomerRegistrationService>().As <ICustomerRegistrationService>().InstancePerLifetimeScope(); builder.RegisterType <SettingService>().As <ISettingService>() .WithParameter(ResolvedParameter.ForNamed <ICacheManager>("JNKJ_cache_static")) .InstancePerLifetimeScope(); builder.RegisterSource(new SettingsSource()); builder.RegisterType <FormsAuthenticationService>().As <IAuthenticationService>().InstancePerLifetimeScope(); builder.RegisterType <DefaultLogger>().As <ILogger>().InstancePerLifetimeScope(); builder.RegisterType <EncryptionService>().As <IEncryptionService>().InstancePerLifetimeScope(); builder.RegisterType <DataDictionaryService>().As <IDataDictionary>().InstancePerLifetimeScope(); //数据字典 builder.RegisterType <Company_EmployeService>().As <ICompany_Employe>().InstancePerLifetimeScope(); //企业信息--企业从业人员聘用关系 builder.RegisterType <ContractFileService>().As <IContractFile>().InstancePerLifetimeScope(); //项目信息--合同附件表 builder.RegisterType <Employee_MasterService>().As <IEmployee_Master>().InstancePerLifetimeScope(); //企业信息--从业人员基础信息 builder.RegisterType <EntryExitHistoryService>().As <IEntryExitHistory>().InstancePerLifetimeScope(); //项目信息--进退场记录 builder.RegisterType <PayRollService>().As <IPayRoll>().InstancePerLifetimeScope(); //项目信息--工资单 builder.RegisterType <PayRollDetailService>().As <IPayRollDetail>().InstancePerLifetimeScope(); //项目信息--工资明细 builder.RegisterType <PersonalCertificationsService>().As <IPersonalCertifications>().InstancePerLifetimeScope(); //工人信息--人员资格证书信息 builder.RegisterType <ProjectMasterService>().As <IProjectMaster>().InstancePerLifetimeScope(); //项目信息--项目基础信息 builder.RegisterType <ProjectSubContractorService>().As <IProjectSubContractor>().InstancePerLifetimeScope(); //项目信息--项目参建单位信息 builder.RegisterType <ProjectTrainingService>().As <IProjectTraining>().InstancePerLifetimeScope(); //项目信息--项目中的培训记录 builder.RegisterType <ProjectWorkerService>().As <IProjectWorker>().InstancePerLifetimeScope(); //项目信息--项目中工人信息 builder.RegisterType <SubContractorService>().As <ISubContractor>().InstancePerLifetimeScope(); //企业信息--企业信息 builder.RegisterType <SubContractorBlackListService>().As <ISubContractorBlackList>().InstancePerLifetimeScope(); //企业信息--企业黑名单信息 builder.RegisterType <SubContractorCertificationsService>().As <ISubContractorCertifications>().InstancePerLifetimeScope(); //企业信息--企业资质 builder.RegisterType <TeamMasterService>().As <ITeamMaster>().InstancePerLifetimeScope(); //班组信息--班组基础信息 builder.RegisterType <TeamMemberService>().As <ITeamMember>().InstancePerLifetimeScope(); //班组信息--班组成员 builder.RegisterType <TeamReviewService>().As <ITeamReview>().InstancePerLifetimeScope(); //班组信息--班组评价 builder.RegisterType <WorkerAttendanceService>().As <IWorkerAttendance>().InstancePerLifetimeScope(); //项目信息--刷卡数据 builder.RegisterType <WorkerBadRecordsService>().As <IWorkerBadRecords>().InstancePerLifetimeScope(); //工人信息--工人不良行为记录信息 builder.RegisterType <WorkerBlackListService>().As <IWorkerBlackList>().InstancePerLifetimeScope(); //工人信息--工人黑名单信息 builder.RegisterType <WorkerContractRuleService>().As <IWorkerContractRule>().InstancePerLifetimeScope(); //项目信息--项目中工人劳动合同信息 builder.RegisterType <WorkerGoodRecordsService>().As <IWorkerGoodRecords>().InstancePerLifetimeScope(); //工人信息--工人奖励记录信息 builder.RegisterType <WorkerMasterService>().As <IWorkerMaster>().InstancePerLifetimeScope(); //工人信息--工人实名基础信息 builder.RegisterType <QiniuService>().As <IQiniuService>().InstancePerLifetimeScope(); //七牛服务 builder.RegisterType <UserService>().As <IUser>().InstancePerLifetimeScope(); //用户 //pass MemoryCacheManager as cacheManager (cache settings between requests) builder.RegisterType <PermissionService>().As <IPermissionService>() .WithParameter(ResolvedParameter.ForNamed <ICacheManager>("era_cache_static")) .InstancePerRequest(); builder.RegisterType <CustomerActivityService>().As <ICustomerActivityService>() .WithParameter(ResolvedParameter.ForNamed <ICacheManager>("era_cache_static")) .InstancePerLifetimeScope(); //Register event consumers #region service register #endregion }
/// <summary> /// 注册服务和接口 /// </summary> /// <param name="builder">注册容器</param> /// <param name="typeFinder">Type finder</param> /// <param name="config">配置对象</param> public virtual void Register(ContainerBuilder builder, ITypeFinder typeFinder, NopConfig config) { //HTTP上下文和其他相关内容 builder.Register(c => //当HttpContext不可用时注册FakeHttpContext HttpContext.Current != null ? (new HttpContextWrapper(HttpContext.Current) as HttpContextBase) : (new FakeHttpContext("~/") as HttpContextBase)) .As <HttpContextBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Request) .As <HttpRequestBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Response) .As <HttpResponseBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Server) .As <HttpServerUtilityBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Session) .As <HttpSessionStateBase>() .InstancePerLifetimeScope(); //注册控制器 builder.RegisterControllers(typeFinder.GetAssemblies().ToArray()); //数据层 var dataSettingsManager = new DataSettingsManager(); var dataProviderSettings = dataSettingsManager.LoadSettings(); builder.Register(c => dataSettingsManager.LoadSettings()).As <DataSettings>(); builder.Register(x => new EfDataProviderManager(x.Resolve <DataSettings>())).As <BaseDataProviderManager>().InstancePerDependency(); builder.Register(x => x.Resolve <BaseDataProviderManager>().LoadDataProvider()).As <IDataProvider>().InstancePerDependency(); if (dataProviderSettings != null && dataProviderSettings.IsValid()) { var efDataProviderManager = new EfDataProviderManager(dataSettingsManager.LoadSettings()); var dataProvider = efDataProviderManager.LoadDataProvider(); dataProvider.InitConnectionFactory(); builder.Register <IDbContext>(c => new ExploreObjectContext(dataProviderSettings.DataConnectionString)).InstancePerLifetimeScope(); } else { builder.Register <IDbContext>(c => new ExploreObjectContext(dataSettingsManager.LoadSettings().DataConnectionString)).InstancePerLifetimeScope(); } builder.RegisterGeneric(typeof(EfRepository <>)).As(typeof(IRepository <>)).InstancePerLifetimeScope(); //缓存管理 if (config.RedisCachingEnabled) { builder.RegisterType <RedisConnectionWrapper>().As <IRedisConnectionWrapper>().SingleInstance(); builder.RegisterType <RedisCacheManager>().As <ICacheManager>().Named <ICacheManager>("nop_cache_static").InstancePerLifetimeScope(); } else { builder.RegisterType <MemoryCacheManager>().As <ICacheManager>().Named <ICacheManager>("nop_cache_static").SingleInstance(); } builder.RegisterType <PerRequestCacheManager>().As <ICacheManager>().Named <ICacheManager>("nop_cache_per_request").InstancePerLifetimeScope(); //services builder.RegisterType <FormsAuthenticationService>().As <IAuthenticationService>().InstancePerLifetimeScope(); builder.RegisterType <CustomerService>().As <ICustomerService>().InstancePerLifetimeScope(); builder.RegisterType <UsersService>().As <IUsersService>().InstancePerLifetimeScope(); builder.RegisterType <CustomerRegistrationService>().As <ICustomerRegistrationService>().InstancePerLifetimeScope(); builder.RegisterType <EncryptionService>().As <IEncryptionService>().InstancePerLifetimeScope(); builder.RegisterType <GenericAttributeService>().As <IGenericAttributeService>().InstancePerLifetimeScope(); builder.RegisterType <BannerService>().As <IBannerService>().InstancePerLifetimeScope(); builder.RegisterType <GameStatisticsService>().As <IGameStatisticsService>().InstancePerLifetimeScope(); builder.RegisterType <PictureService>().As <IPictureService>().InstancePerLifetimeScope(); builder.RegisterType <ExportManager>().As <IExportManager>().InstancePerLifetimeScope(); builder.RegisterType <DefaultLogger>().As <ILogger>().InstancePerLifetimeScope(); builder.RegisterType <DateTimeHelper>().As <IDateTimeHelper>().InstancePerLifetimeScope(); //work context builder.RegisterType <WebWorkContext>().As <IWorkContext>().InstancePerLifetimeScope(); builder.RegisterType <PageHeadBuilder>().As <IPageHeadBuilder>().InstancePerLifetimeScope(); //use static cache (between HTTP requests) builder.RegisterType <PermissionService>().As <IPermissionService>() .WithParameter(ResolvedParameter.ForNamed <ICacheManager>("nop_cache_static")) .InstancePerLifetimeScope(); //use static cache (between HTTP requests) builder.RegisterType <SettingService>().As <ISettingService>() .WithParameter(ResolvedParameter.ForNamed <ICacheManager>("nop_cache_static")) .InstancePerLifetimeScope(); builder.RegisterSource(new SettingsSource()); //web helper builder.RegisterType <WebHelper>().As <IWebHelper>().InstancePerLifetimeScope(); //user agent helper builder.RegisterType <UserAgentHelper>().As <IUserAgentHelper>().InstancePerLifetimeScope(); builder.RegisterType <RoutePublisher>().As <IRoutePublisher>().SingleInstance(); //use static cache (between HTTP requests) builder.RegisterType <LocalizationService>().As <ILocalizationService>() .WithParameter(ResolvedParameter.ForNamed <ICacheManager>("nop_cache_static")) .InstancePerLifetimeScope(); //use static cache (between HTTP requests) builder.RegisterType <CustomerActivityService>().As <ICustomerActivityService>() .WithParameter(ResolvedParameter.ForNamed <ICacheManager>("nop_cache_static")) .InstancePerLifetimeScope(); builder.RegisterType <WidgetService>().As <IWidgetService>().InstancePerLifetimeScope(); //plugins builder.RegisterType <PluginFinder>().As <IPluginFinder>().InstancePerLifetimeScope(); //注册事件消费者 var consumers = typeFinder.FindClassesOfType(typeof(IConsumer <>)).ToList(); foreach (var consumer in consumers) { builder.RegisterType(consumer) .As(consumer.FindInterfaces((type, criteria) => { var isMatch = type.IsGenericType && ((Type)criteria).IsAssignableFrom(type.GetGenericTypeDefinition()); return(isMatch); }, typeof(IConsumer <>))) .InstancePerLifetimeScope(); } builder.RegisterType <EventPublisher>().As <IEventPublisher>().SingleInstance(); builder.RegisterType <SubscriptionService>().As <ISubscriptionService>().SingleInstance(); }
public virtual void Register(ContainerBuilder builder, ITypeFinder typeFinder) { //HTTP context and other related stuff builder.Register(c => //register FakeHttpContext when HttpContext is not available HttpContext.Current != null ? (new HttpContextWrapper(HttpContext.Current) as HttpContextBase) : (new FakeHttpContext("~/") as HttpContextBase)) .As <HttpContextBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Request) .As <HttpRequestBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Response) .As <HttpResponseBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Server) .As <HttpServerUtilityBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Session) .As <HttpSessionStateBase>() .InstancePerLifetimeScope(); //web helper builder.RegisterType <WebHelper>().As <IWebHelper>().InstancePerLifetimeScope(); //user agent helper builder.RegisterType <UserAgentHelper>().As <IUserAgentHelper>().InstancePerLifetimeScope(); //controllers var assemblies = typeFinder.GetAssemblies().ToArray(); builder.RegisterApiControllers(assemblies); //data layer //builder.RegisterType<SqlServerDataProvider>().As<IDataProvider>().InstancePerLifetimeScope(); //builder.Register<IDbContext>(c => new QMTechObjectContext()).AsSelf().InstancePerLifetimeScope();//.InstancePerLifetimeScope(); //builder.RegisterGeneric(typeof(EfRepository<>)).As(typeof(IRepository<>)).InstancePerLifetimeScope(); //data layer var dataSettingsManager = new DataSettingsManager(); var dataProviderSettings = dataSettingsManager.LoadSettings(); builder.Register(c => dataSettingsManager.LoadSettings()).As <DataSettings>(); builder.Register(x => new EfDataProviderManager(x.Resolve <DataSettings>())).As <BaseDataProviderManager>().InstancePerDependency(); builder.Register(x => x.Resolve <BaseDataProviderManager>().LoadDataProvider()).As <IDataProvider>().InstancePerDependency(); if (dataProviderSettings != null && dataProviderSettings.IsValid()) { var efDataProviderManager = new EfDataProviderManager(dataSettingsManager.LoadSettings()); var dataProvider = efDataProviderManager.LoadDataProvider(); dataProvider.InitConnectionFactory(); builder.Register <IDbContext>(c => new QMTechObjectContext(dataProviderSettings.DataConnectionString)).InstancePerLifetimeScope(); } else { builder.Register <IDbContext>(c => new QMTechObjectContext(dataSettingsManager.LoadSettings().DataConnectionString)).InstancePerLifetimeScope(); } builder.RegisterGeneric(typeof(EfRepository <>)).As(typeof(IRepository <>)).InstancePerLifetimeScope(); //plugins builder.RegisterType <PluginFinder>().As <IPluginFinder>().InstancePerLifetimeScope(); builder.RegisterType <OfficialFeedManager>().As <IOfficialFeedManager>().InstancePerLifetimeScope(); //cache manager builder.RegisterType <MemoryCacheManager>().As <ICacheManager>().Named <ICacheManager>("qm_cache_static").SingleInstance(); builder.RegisterType <PerRequestCacheManager>().As <ICacheManager>().Named <ICacheManager>("qm_cache_per_request").InstancePerLifetimeScope(); //work context builder.RegisterType <WebWorkContext>().As <IWorkContext>().InstancePerLifetimeScope(); //store context //builder.RegisterType<WebStoreContext>().As<IStoreContext>().InstancePerLifetimeScope(); #region 解决 模型验证 dbcontext has been disposed builder.RegisterAssemblyTypes(assemblies) .Where(t => t.Name.EndsWith("Validator")) .AsImplementedInterfaces() .InstancePerLifetimeScope(); builder.RegisterType <FluentValidation.WebApi.FluentValidationModelValidatorProvider>().As <System.Web.Http.Validation.ModelValidatorProvider>(); builder.RegisterType <Validators.AutofacValidatorFactory>().As <FluentValidation.IValidatorFactory>().SingleInstance(); #endregion //services #region 目录管理相关服务注册 builder.RegisterType <CategoryService>().As <ICategoryService>().InstancePerLifetimeScope(); builder.RegisterType <StoreService>().As <IStoreService>().InstancePerLifetimeScope(); builder.RegisterType <ProductService>().As <IProductService>().InstancePerLifetimeScope(); builder.RegisterType <ProductTagService>().As <IProductTagService>() .WithParameter(ResolvedParameter.ForNamed <ICacheManager>("nop_cache_static")) .InstancePerLifetimeScope(); #endregion //builder.RegisterType<BackInStockSubscriptionService>().As<IBackInStockSubscriptionService>().InstancePerLifetimeScope(); //builder.RegisterType<CategoryService>().As<ICategoryService>().InstancePerLifetimeScope(); //builder.RegisterType<CompareProductsService>().As<ICompareProductsService>().InstancePerLifetimeScope(); //builder.RegisterType<RecentlyViewedProductsService>().As<IRecentlyViewedProductsService>().InstancePerLifetimeScope(); //builder.RegisterType<ManufacturerService>().As<IManufacturerService>().InstancePerLifetimeScope(); //builder.RegisterType<PriceFormatter>().As<IPriceFormatter>().InstancePerLifetimeScope(); //builder.RegisterType<ProductAttributeFormatter>().As<IProductAttributeFormatter>().InstancePerLifetimeScope(); //builder.RegisterType<ProductAttributeParser>().As<IProductAttributeParser>().InstancePerLifetimeScope(); //builder.RegisterType<ProductAttributeService>().As<IProductAttributeService>().InstancePerLifetimeScope(); //builder.RegisterType<CopyProductService>().As<ICopyProductService>().InstancePerLifetimeScope(); //builder.RegisterType<SpecificationAttributeService>().As<ISpecificationAttributeService>().InstancePerLifetimeScope(); //builder.RegisterType<ProductTemplateService>().As<IProductTemplateService>().InstancePerLifetimeScope(); //builder.RegisterType<CategoryTemplateService>().As<ICategoryTemplateService>().InstancePerLifetimeScope(); //builder.RegisterType<ManufacturerTemplateService>().As<IManufacturerTemplateService>().InstancePerLifetimeScope(); //builder.RegisterType<TopicTemplateService>().As<ITopicTemplateService>().InstancePerLifetimeScope(); ////pass MemoryCacheManager as cacheManager (cache settings between requests) //builder.RegisterType<AddressAttributeFormatter>().As<IAddressAttributeFormatter>().InstancePerLifetimeScope(); //builder.RegisterType<AddressAttributeParser>().As<IAddressAttributeParser>().InstancePerLifetimeScope(); //builder.RegisterType<AddressAttributeService>().As<IAddressAttributeService>().InstancePerLifetimeScope(); //builder.RegisterType<AddressService>().As<IAddressService>().InstancePerLifetimeScope(); //builder.RegisterType<AffiliateService>().As<IAffiliateService>().InstancePerLifetimeScope(); //builder.RegisterType<venderService>().As<IvenderService>().InstancePerLifetimeScope(); //builder.RegisterType<SearchTermService>().As<ISearchTermService>().InstancePerLifetimeScope(); builder.RegisterType <GenericAttributeService>().As <IGenericAttributeService>().InstancePerLifetimeScope(); //builder.RegisterType<FulltextService>().As<IFulltextService>().InstancePerLifetimeScope(); //builder.RegisterType<MaintenanceService>().As<IMaintenanceService>().InstancePerLifetimeScope(); //builder.RegisterType<CustomerAttributeParser>().As<ICustomerAttributeParser>().InstancePerLifetimeScope(); //builder.RegisterType<CustomerAttributeService>().As<ICustomerAttributeService>().InstancePerLifetimeScope(); builder.RegisterType <CustomerService>().As <ICustomerService>().InstancePerLifetimeScope(); //builder.RegisterType<CustomerService>().As<IUserStore>().InstancePerLifetimeScope(); //builder.RegisterType<CustomerService>().As<ICustomerService>().InstancePerLifetimeScope(); builder.RegisterType <RefreshTokenService>().As <IRefreshTokenService>().InstancePerLifetimeScope(); builder.RegisterType <CustomerRegistrationService>().As <ICustomerRegistrationService>().InstancePerLifetimeScope(); //builder.RegisterType<CustomerReportService>().As<ICustomerReportService>().InstancePerLifetimeScope(); //pass MemoryCacheManager as cacheManager (cache settings between requests) //builder.RegisterType<PermissionService>().As<IPermissionService>() // .WithParameter(ResolvedParameter.ForNamed<ICacheManager>("nop_cache_static")) // .InstancePerLifetimeScope(); ////pass MemoryCacheManager as cacheManager (cache settings between requests) //builder.RegisterType<AclService>().As<IAclService>() // .WithParameter(ResolvedParameter.ForNamed<ICacheManager>("nop_cache_static")) // .InstancePerLifetimeScope(); ////pass MemoryCacheManager as cacheManager (cache settings between requests) //builder.RegisterType<PriceCalculationService>().As<IPriceCalculationService>() // .WithParameter(ResolvedParameter.ForNamed<ICacheManager>("nop_cache_static")) // .InstancePerLifetimeScope(); //builder.RegisterType<GeoLookupService>().As<IGeoLookupService>().InstancePerLifetimeScope(); //builder.RegisterType<CountryService>().As<ICountryService>().InstancePerLifetimeScope(); //builder.RegisterType<CurrencyService>().As<ICurrencyService>().InstancePerLifetimeScope(); //builder.RegisterType<MeasureService>().As<IMeasureService>().InstancePerLifetimeScope(); //builder.RegisterType<StateProvinceService>().As<IStateProvinceService>().InstancePerLifetimeScope(); //builder.RegisterType<StoreService>().As<IStoreService>().InstancePerLifetimeScope(); ////pass MemoryCacheManager as cacheManager (cache settings between requests) //builder.RegisterType<StoreMappingService>().As<IStoreMappingService>() // .WithParameter(ResolvedParameter.ForNamed<ICacheManager>("nop_cache_static")) // .InstancePerLifetimeScope(); //builder.RegisterType<DiscountService>().As<IDiscountService>().InstancePerLifetimeScope(); //pass MemoryCacheManager as cacheManager (cache settings between requests) builder.RegisterType <SettingService>().As <ISettingService>() .WithParameter(ResolvedParameter.ForNamed <ICacheManager>("qm_cache_static")) .InstancePerLifetimeScope(); builder.RegisterSource(new SettingsSource()); ////pass MemoryCacheManager as cacheManager (cache locales between requests) //builder.RegisterType<LocalizationService>().As<ILocalizationService>() // .WithParameter(ResolvedParameter.ForNamed<ICacheManager>("nop_cache_static")) // .InstancePerLifetimeScope(); ////pass MemoryCacheManager as cacheManager (cache locales between requests) //builder.RegisterType<LocalizedEntityService>().As<ILocalizedEntityService>() // .WithParameter(ResolvedParameter.ForNamed<ICacheManager>("nop_cache_static")) // .InstancePerLifetimeScope(); //builder.RegisterType<LanguageService>().As<ILanguageService>().InstancePerLifetimeScope(); //builder.RegisterType<DownloadService>().As<IDownloadService>().InstancePerLifetimeScope(); builder.RegisterType <PictureService>().As <IPictureService>().InstancePerLifetimeScope(); builder.RegisterType <MessageTemplateService>().As <IMessageTemplateService>().InstancePerLifetimeScope(); builder.RegisterType <QueuedEmailService>().As <IQueuedEmailService>().InstancePerLifetimeScope(); //builder.RegisterType<NewsLetterSubscriptionService>().As<INewsLetterSubscriptionService>().InstancePerLifetimeScope(); //builder.RegisterType<CampaignService>().As<ICampaignService>().InstancePerLifetimeScope(); builder.RegisterType <EmailAccountService>().As <IEmailAccountService>().InstancePerLifetimeScope(); builder.RegisterType <WorkflowMessageService>().As <IWorkflowMessageService>().InstancePerLifetimeScope(); builder.RegisterType <MessageTokenProvider>().As <IMessageTokenProvider>().InstancePerLifetimeScope(); builder.RegisterType <Tokenizer>().As <ITokenizer>().InstancePerLifetimeScope(); //builder.RegisterType<EmailSender>().As<IEmailSender>().InstancePerLifetimeScope(); //builder.RegisterType<CheckoutAttributeFormatter>().As<ICheckoutAttributeFormatter>().InstancePerLifetimeScope(); //builder.RegisterType<CheckoutAttributeParser>().As<ICheckoutAttributeParser>().InstancePerLifetimeScope(); //builder.RegisterType<CheckoutAttributeService>().As<ICheckoutAttributeService>().InstancePerLifetimeScope(); //builder.RegisterType<GiftCardService>().As<IGiftCardService>().InstancePerLifetimeScope(); //builder.RegisterType<OrderService>().As<IOrderService>().InstancePerLifetimeScope(); //builder.RegisterType<OrderReportService>().As<IOrderReportService>().InstancePerLifetimeScope(); //builder.RegisterType<OrderProcessingService>().As<IOrderProcessingService>().InstancePerLifetimeScope(); //builder.RegisterType<OrderTotalCalculationService>().As<IOrderTotalCalculationService>().InstancePerLifetimeScope(); //builder.RegisterType<ShoppingCartService>().As<IShoppingCartService>().InstancePerLifetimeScope(); //builder.RegisterType<PaymentService>().As<IPaymentService>().InstancePerLifetimeScope(); builder.RegisterType <EncryptionService>().As <IEncryptionService>().InstancePerLifetimeScope(); builder.RegisterType <TokenAuthenticationService>().As <IAuthenticationService>().InstancePerLifetimeScope(); ////pass MemoryCacheManager as cacheManager (cache settings between requests) //builder.RegisterType<UrlRecordService>().As<IUrlRecordService>() // .WithParameter(ResolvedParameter.ForNamed<ICacheManager>("nop_cache_static")) // .InstancePerLifetimeScope(); //builder.RegisterType<ShipmentService>().As<IShipmentService>().InstancePerLifetimeScope(); //builder.RegisterType<ShippingService>().As<IShippingService>().InstancePerLifetimeScope(); //builder.RegisterType<TaxCategoryService>().As<ITaxCategoryService>().InstancePerLifetimeScope(); //builder.RegisterType<TaxService>().As<ITaxService>().InstancePerLifetimeScope(); //builder.RegisterType<TaxCategoryService>().As<ITaxCategoryService>().InstancePerLifetimeScope(); builder.RegisterType <DefaultLogger>().As <ILogger>().InstancePerLifetimeScope(); //pass MemoryCacheManager as cacheManager (cache settings between requests) builder.RegisterType <CustomerActivityService>().As <ICustomerActivityService>() .WithParameter(ResolvedParameter.ForNamed <ICacheManager>("nop_cache_static")) .InstancePerLifetimeScope(); //builder.RegisterType<CodeFirstInstallationService>().As<IInstallationService>().InstancePerLifetimeScope(); //bool databaseInstalled = DataSettingsHelper.DatabaseIsInstalled(); //if (!databaseInstalled) //{ // //installation service // if (!String.IsNullOrEmpty(ConfigurationManager.AppSettings["UseFastInstallationService"]) && // Convert.ToBoolean(ConfigurationManager.AppSettings["UseFastInstallationService"])) // { // builder.RegisterType<SqlFileInstallationService>().As<IInstallationService>().InstancePerLifetimeScope(); // } // else // { // builder.RegisterType<CodeFirstInstallationService>().As<IInstallationService>().InstancePerLifetimeScope(); // } //} //builder.RegisterType<ForumService>().As<IForumService>().InstancePerLifetimeScope(); //builder.RegisterType<PollService>().As<IPollService>().InstancePerLifetimeScope(); //builder.RegisterType<BlogService>().As<IBlogService>().InstancePerLifetimeScope(); //builder.RegisterType<WidgetService>().As<IWidgetService>().InstancePerLifetimeScope(); //builder.RegisterType<TopicService>().As<ITopicService>().InstancePerLifetimeScope(); //builder.RegisterType<NewsService>().As<INewsService>().InstancePerLifetimeScope(); //builder.RegisterType<DateTimeHelper>().As<IDateTimeHelper>().InstancePerLifetimeScope(); //builder.RegisterType<SitemapGenerator>().As<ISitemapGenerator>().InstancePerLifetimeScope(); //builder.RegisterType<PageHeadBuilder>().As<IPageHeadBuilder>().InstancePerLifetimeScope(); builder.RegisterType <ScheduleTaskService>().As <IScheduleTaskService>().InstancePerLifetimeScope(); //builder.RegisterType<ExportManager>().As<IExportManager>().InstancePerLifetimeScope(); //builder.RegisterType<ImportManager>().As<IImportManager>().InstancePerLifetimeScope(); //builder.RegisterType<PdfService>().As<IPdfService>().InstancePerLifetimeScope(); //builder.RegisterType<ThemeProvider>().As<IThemeProvider>().InstancePerLifetimeScope(); //builder.RegisterType<ThemeContext>().As<IThemeContext>().InstancePerLifetimeScope(); //builder.RegisterType<ExternalAuthorizer>().As<IExternalAuthorizer>().InstancePerLifetimeScope(); //builder.RegisterType<OpenAuthenticationService>().As<IOpenAuthenticationService>().InstancePerLifetimeScope(); //Register event consumers var consumers = typeFinder.FindClassesOfType(typeof(IConsumer <>)).ToList(); foreach (var consumer in consumers) { builder.RegisterType(consumer) .As(consumer.FindInterfaces((type, criteria) => { var isMatch = type.IsGenericType && ((Type)criteria).IsAssignableFrom(type.GetGenericTypeDefinition()); return(isMatch); }, typeof(IConsumer <>))) .InstancePerLifetimeScope(); } builder.RegisterType <EventPublisher>().As <IEventPublisher>().SingleInstance(); builder.RegisterType <SubscriptionService>().As <ISubscriptionService>().SingleInstance(); }
public virtual void Register(ContainerBuilder builder, ITypeFinder typeFinder) { //HTTP context and other related stuff builder.Register(c => //register FakeHttpContext when HttpContext is not available HttpContext.Current != null ? (new HttpContextWrapper(HttpContext.Current) as HttpContextBase) : (new FakeHttpContext("~/") as HttpContextBase)) .As <HttpContextBase>() .InstancePerHttpRequest(); builder.Register(c => c.Resolve <HttpContextBase>().Request) .As <HttpRequestBase>() .InstancePerHttpRequest(); builder.Register(c => c.Resolve <HttpContextBase>().Response) .As <HttpResponseBase>() .InstancePerHttpRequest(); builder.Register(c => c.Resolve <HttpContextBase>().Server) .As <HttpServerUtilityBase>() .InstancePerHttpRequest(); builder.Register(c => c.Resolve <HttpContextBase>().Session) .As <HttpSessionStateBase>() .InstancePerHttpRequest(); //web helper builder.RegisterType <WebHelper>().As <IWebHelper>().InstancePerHttpRequest(); //cache manager builder.RegisterType <MemoryCacheManager>().As <ICacheManager>().Named <ICacheManager>("ocean_cache_static").SingleInstance(); builder.RegisterType <PerRequestCacheManager>().As <ICacheManager>().Named <ICacheManager>("ocean_cache_per_request").InstancePerHttpRequest(); //controllers builder.RegisterControllers(typeFinder.GetAssemblies().ToArray()); //data layer var dataSettingsManager = new DataSettingsManager(); var dataProviderSettings = dataSettingsManager.LoadSettings(); builder.Register(c => dataSettingsManager.LoadSettings()).As <DataSettings>().InstancePerDependency(); builder.Register(x => new EfDataProviderManager(x.Resolve <DataSettings>())).As <BaseDataProviderManager>().InstancePerDependency(); builder.Register(x => (IEfDataProvider)x.Resolve <BaseDataProviderManager>().LoadDataProvider()).As <IDataProvider>().InstancePerDependency(); builder.Register(x => (IEfDataProvider)x.Resolve <BaseDataProviderManager>().LoadDataProvider()).As <IEfDataProvider>().InstancePerDependency(); if (dataProviderSettings != null && dataProviderSettings.IsValid()) { var efDataProviderManager = new EfDataProviderManager(dataSettingsManager.LoadSettings()); var dataProvider = (IEfDataProvider)efDataProviderManager.LoadDataProvider(); dataProvider.InitConnectionFactory(); builder.Register <IDbContext>(c => new OceanObjectContext(dataProviderSettings.DataConnectionString)).InstancePerHttpRequest(); } else { builder.Register <IDbContext>(c => new OceanObjectContext(dataSettingsManager.LoadSettings().DataConnectionString)).InstancePerHttpRequest(); } //builder.Register<IDbContext>(c => new OceanObjectContext("EFDbContext")).InstancePerHttpRequest(); builder.RegisterGeneric(typeof(EfRepository <>)).As(typeof(IRepository <>)).InstancePerHttpRequest(); //service builder.RegisterType <EnumTypeService>().As <IEnumTypeService>().InstancePerHttpRequest(); builder.RegisterType <EnumDataService>().As <IEnumDataService>().InstancePerHttpRequest(); builder.RegisterType <AdminService>().As <IAdminService>().InstancePerHttpRequest(); builder.RegisterType <AdminLoggerService>().As <IAdminLoggerService>().InstancePerHttpRequest(); builder.RegisterType <PermissionOrganizationService>().As <IPermissionOrganizationService>().InstancePerHttpRequest(); builder.RegisterType <PermissionModuleService>().As <IPermissionModuleService>().InstancePerHttpRequest(); builder.RegisterType <PermissionModuleCodeService>().As <IPermissionModuleCodeService>().InstancePerHttpRequest(); builder.RegisterType <PermissionRoleService>().As <IPermissionRoleService>().InstancePerHttpRequest(); builder.RegisterType <CategoryService>().As <ICategoryService>().InstancePerHttpRequest(); builder.RegisterType <ProductService>().As <IProductService>().InstancePerHttpRequest(); builder.RegisterType <LoanService>().As <ILoanService>() .WithParameter(ResolvedParameter.ForNamed <ICacheManager>("ocean_cache_static")) .InstancePerHttpRequest(); builder.RegisterType <LoanAssignLoggerService>().As <ILoanAssignLoggerService>().InstancePerHttpRequest(); builder.RegisterType <MpCenterService>().As <IMpCenterService>().InstancePerHttpRequest(); builder.RegisterType <MpMaterialService>().As <IMpMaterialService>().InstancePerHttpRequest(); builder.RegisterType <MpMaterialItemService>().As <IMpMaterialItemService>().InstancePerHttpRequest(); builder.RegisterType <MpUserGroupService>().As <IMpUserGroupService>().InstancePerHttpRequest(); builder.RegisterType <MpReplyService>().As <IMpReplyService>().InstancePerHttpRequest(); builder.RegisterType <MpUserService>().As <IMpUserService>().InstancePerHttpRequest(); builder.RegisterType <FunongbaoService>().As <IFunongbaoService>().InstancePerHttpRequest(); builder.RegisterType <FunongbaoApplyService>().As <IFunongbaoApplyService>().InstancePerHttpRequest(); builder.RegisterType <BranchService>().As <IBranchService>().InstancePerHttpRequest(); builder.RegisterType <MobileCodeService>().As <IMobileCodeService>().InstancePerHttpRequest(); builder.RegisterType <ConfigurationService>().As <IConfigurationService>().InstancePerHttpRequest(); builder.RegisterType <ScheduleTaskService>().As <IScheduleTaskService>().InstancePerHttpRequest(); builder.RegisterType <MpQrSceneService>().As <IMpQrSceneService>().InstancePerHttpRequest(); //KF builder.RegisterType <KfNumberService>().As <IKfNumberService>().InstancePerHttpRequest(); builder.RegisterType <KfMeetingService>().As <IKfMeetingService>().InstancePerHttpRequest(); builder.RegisterType <KfMeetingMessageService>().As <IKfMeetingMessageService>().InstancePerHttpRequest(); //configuration and setting builder.RegisterGeneric(typeof(ConfigurationProvider <>)).As(typeof(IConfigurationProvider <>)); builder.RegisterSource(new SettingsSource()); builder.RegisterType <SettingService>().As <ISettingService>().InstancePerHttpRequest(); //theme helper builder.RegisterType <MobileDeviceHelper>().As <IMobileDeviceHelper>().InstancePerHttpRequest(); builder.RegisterType <ThemeProvider>().As <IThemeProvider>().InstancePerHttpRequest(); builder.RegisterType <ThemeContext>().As <IThemeContext>().InstancePerHttpRequest(); //Visual Plugins builder.RegisterType <PluginBaseService>().As <IPluginBaseService>().InstancePerHttpRequest(); builder.RegisterType <PluginBaseStyleService>().As <IPluginBaseStyleService>().InstancePerHttpRequest(); builder.RegisterType <PluginService>().As <IPluginService>().InstancePerHttpRequest(); builder.RegisterType <PluginResultService>().As <IPluginResultService>().InstancePerHttpRequest(); builder.RegisterType <PluginUsedService>().As <IPluginUsedService>().InstancePerHttpRequest(); builder.RegisterType <PluginAllowUserService>().As <IPluginAllowUserService>().InstancePerHttpRequest(); builder.RegisterType <PluginSceneApllyCodeAllowerService>().As <IPluginSceneApllyCodeAllowerService>().InstancePerHttpRequest(); builder.RegisterType <PluginSceneResultService>().As <IPluginSceneResultService>().InstancePerHttpRequest(); builder.RegisterType <PluginSceneVerifyCodeDetailService>().As <IPluginSceneVerifyCodeDetailService>().InstancePerHttpRequest(); //plugins builder.RegisterType <PluginFinder>().As <IPluginFinder>().InstancePerHttpRequest(); builder.RegisterType <EmbeddedViewResolver>().As <IEmbeddedViewResolver>().SingleInstance(); builder.RegisterType <RoutePublisher>().As <IRoutePublisher>().SingleInstance(); builder.RegisterType <WidgetService>().As <IWidgetService>().InstancePerHttpRequest(); Log4NetImpl.SetConfig(FileHelper.GetMapPath("~/config/log4net.config")); //pos builder.RegisterType <PosApplyService>().As <IPosApplyService>().InstancePerHttpRequest(); builder.RegisterType <PosAuthService>().As <IPosAuthService>().InstancePerHttpRequest(); builder.RegisterType <PosService>().As <IPosService>().InstancePerHttpRequest(); //vote builder.RegisterType <VoteItemService>().As <IVoteItemService>().InstancePerHttpRequest(); builder.RegisterType <VoteInfoService>().As <IVoteInfoService>().InstancePerHttpRequest(); builder.RegisterType <VoteBaseService>().As <IVoteBaseService>().InstancePerHttpRequest(); //scoresys builder.RegisterType <ScoreUserService>().As <IScoreUserService>().InstancePerHttpRequest(); builder.RegisterType <ScoreTradeInfoService>().As <IScoreTradeInfoService>().InstancePerHttpRequest(); builder.RegisterType <ScoreStoreItemService>().As <IScoreStoreItemService>().InstancePerHttpRequest(); builder.RegisterType <ScorePluginResultService>().As <IScorePluginResultService>().InstancePerHttpRequest(); builder.RegisterType <ScoreConsumeInfoService>().As <IScoreConsumeInfoService>().InstancePerHttpRequest(); //xypluginuser builder.RegisterType <XYPluginUserService>().As <IXYPluginUserService>().InstancePerHttpRequest(); //baoxian builder.RegisterType <ComplainService>().As <IComplainService>().InstancePerHttpRequest(); builder.RegisterType <DrivingLicenseService>().As <IDrivingLicenseService>().InstancePerHttpRequest(); builder.RegisterType <VehicleLicenseService>().As <IVehicleLicenseService>().InstancePerHttpRequest(); }
/// <summary> /// Register services and interfaces /// </summary> /// <param name="builder">Container builder</param> /// <param name="typeFinder">Type finder</param> /// <param name="config">Config</param> public virtual void Register(ContainerBuilder builder, ITypeFinder typeFinder, NopConfig config) { //HTTP context and other related stuff builder.Register(c => //register FakeHttpContext when HttpContext is not available HttpContext.Current != null ? (new HttpContextWrapper(HttpContext.Current) as HttpContextBase) : (new FakeHttpContext("~/") as HttpContextBase)) .As <HttpContextBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Request) .As <HttpRequestBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Response) .As <HttpResponseBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Server) .As <HttpServerUtilityBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Session) .As <HttpSessionStateBase>() .InstancePerLifetimeScope(); //web helper builder.RegisterType <WebHelper>().As <IWebHelper>().InstancePerLifetimeScope(); //work context builder.RegisterType <WebApiWorkContext>().As <IWorkContext>().InstancePerLifetimeScope(); //controllers //builder.RegisterApiControllers(typeFinder.GetAssemblies().ToArray()); //data layer var dataSettingsManager = new DataSettingsManager(); var dataProviderSettings = dataSettingsManager.LoadSettings(); builder.Register(c => dataSettingsManager.LoadSettings()).As <DataSettings>(); builder.Register(x => new EfDataProviderManager(x.Resolve <DataSettings>())).As <BaseDataProviderManager>().InstancePerDependency(); builder.Register(x => x.Resolve <BaseDataProviderManager>().LoadDataProvider()).As <IDataProvider>().InstancePerDependency(); if (dataProviderSettings != null && dataProviderSettings.IsValid()) { var efDataProviderManager = new EfDataProviderManager(dataSettingsManager.LoadSettings()); var dataProvider = efDataProviderManager.LoadDataProvider(); dataProvider.InitConnectionFactory(); builder.Register <IDbContext>(c => new NopObjectContext(dataProviderSettings.DataConnectionString)).InstancePerLifetimeScope(); } else { builder.Register <IDbContext>(c => new NopObjectContext(dataSettingsManager.LoadSettings().DataConnectionString)).InstancePerLifetimeScope(); } // 注入ef到仓储 builder.RegisterGeneric(typeof(EfRepository <>)).As(typeof(IRepository <>)).InstancePerLifetimeScope(); //log builder.RegisterType <DefaultLogger>().As <ILogger>().InstancePerLifetimeScope(); //cache managers if (config != null && config.RedisCachingEnabled) { builder.RegisterType <RedisConnectionWrapper>().As <IRedisConnectionWrapper>().SingleInstance(); builder.RegisterType <RedisCacheManager>().As <ICacheManager>().Named <ICacheManager>("nop_cache_static").InstancePerLifetimeScope(); } else { builder.RegisterType <MemoryCacheManager>().As <ICacheManager>().Named <ICacheManager>("nop_cache_static").SingleInstance(); } builder.RegisterType <PerRequestCacheManager>().As <ICacheManager>().Named <ICacheManager>("nop_cache_per_request").InstancePerLifetimeScope(); // 注入Service及接口 //builder.RegisterAssemblyTypes(typeof(TestService).Assembly) // .AsImplementedInterfaces() // .InstancePerLifetimeScope(); builder.RegisterType <UserActivityService>().As <IUserActivityService>().InstancePerLifetimeScope(); builder.RegisterType <GenericAttributeService>().As <IGenericAttributeService>().InstancePerLifetimeScope(); builder.RegisterType <LanguageService>().As <ILanguageService>().InstancePerLifetimeScope(); builder.RegisterType <LocalizationService>().As <ILocalizationService>().InstancePerLifetimeScope(); builder.RegisterType <LocalizedEntityService>().As <ILocalizedEntityService>().InstancePerLifetimeScope(); builder.RegisterType <UserAttributeFormatter>().As <IUserAttributeFormatter>().InstancePerLifetimeScope(); builder.RegisterType <UserAttributeParser>().As <IUserAttributeParser>().InstancePerLifetimeScope(); builder.RegisterType <UserAttributeService>().As <IUserAttributeService>().InstancePerLifetimeScope(); builder.RegisterType <UserService>().As <IUserService>().InstancePerLifetimeScope(); builder.RegisterType <UserRegistrationService>().As <IUserRegistrationService>().InstancePerLifetimeScope(); //builder.RegisterType<UserReportService>().As<IUserReportService>().InstancePerLifetimeScope(); builder.RegisterType <EncryptionService>().As <IEncryptionService>().InstancePerLifetimeScope(); builder.RegisterType <FormsAuthenticationService>().As <IAuthenticationService>().InstancePerLifetimeScope(); builder.RegisterType <DateTimeHelper>().As <IDateTimeHelper>().InstancePerLifetimeScope(); builder.RegisterType <ExternalAuthorizer>().As <IExternalAuthorizer>().InstancePerLifetimeScope(); builder.RegisterType <OpenAuthenticationService>().As <IOpenAuthenticationService>().InstancePerLifetimeScope(); //use static cache (between HTTP requests) builder.RegisterType <SettingService>().As <ISettingService>() .WithParameter(ResolvedParameter.ForNamed <ICacheManager>("nop_cache_static")) .InstancePerLifetimeScope(); builder.RegisterSource(new SettingsSource()); //builder.RegisterType<PageHeadBuilder>().As<IPageHeadBuilder>().InstancePerLifetimeScope(); //Register event consumers var consumers = typeFinder.FindClassesOfType(typeof(IConsumer <>)).ToList(); foreach (var consumer in consumers) { builder.RegisterType(consumer) .As(consumer.FindInterfaces((type, criteria) => { var isMatch = type.IsGenericType && ((Type)criteria).IsAssignableFrom(type.GetGenericTypeDefinition()); return(isMatch); }, typeof(IConsumer <>))) .InstancePerLifetimeScope(); } builder.RegisterType <EventPublisher>().As <IEventPublisher>().SingleInstance(); builder.RegisterType <SubscriptionService>().As <ISubscriptionService>().SingleInstance(); }
public virtual void Register(ContainerBuilder builder, ITypeFinder typeFinder) { //HTTP context and other related stuff builder.Register(c => new HttpContextWrapper(HttpContext.Current) as HttpContextBase) .As <HttpContextBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Request) .As <HttpRequestBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Response) .As <HttpResponseBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Server) .As <HttpServerUtilityBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Session) .As <HttpSessionStateBase>() .InstancePerLifetimeScope(); //web helper builder.RegisterType <WebHelper>().As <IWebHelper>().InstancePerLifetimeScope(); //user agent helper //controllers builder.RegisterControllers(typeFinder.GetAssemblies().ToArray()); //data layer var dataSettingsManager = new DataSettingsManager(); var dataProviderSettings = dataSettingsManager.LoadSettings(); builder.Register(c => dataSettingsManager.LoadSettings()).As <DataSettings>(); builder.Register(x => new EfDataProviderManager(x.Resolve <DataSettings>())).As <BaseDataProviderManager>().InstancePerDependency(); builder.Register(x => x.Resolve <BaseDataProviderManager>().LoadDataProvider()).As <IDataProvider>().InstancePerDependency(); if (dataProviderSettings != null && dataProviderSettings.IsValid()) { var efDataProviderManager = new EfDataProviderManager(dataSettingsManager.LoadSettings()); var dataProvider = efDataProviderManager.LoadDataProvider(); dataProvider.InitConnectionFactory(); builder.Register <IDbContext>(c => new EdenObjectContext(dataProviderSettings.DataConnectionString)).InstancePerLifetimeScope(); } else { builder.Register <IDbContext>(c => new EdenObjectContext(dataSettingsManager.LoadSettings().DataConnectionString)).InstancePerLifetimeScope(); } builder.RegisterGeneric(typeof(EfRepository <>)).As(typeof(IRepository <>)).InstancePerLifetimeScope(); builder.RegisterGeneric(typeof(DefaultEntityService <>)).As(typeof(IEntityService <>)).InstancePerLifetimeScope(); //cache manager //builder.RegisterType<MemoryCacheManager>().As<ICacheManager>().Named<ICacheManager>("sxg_cache_static").SingleInstance(); //builder.RegisterType<PerRequestCacheManager>().As<ICacheManager>().Named<ICacheManager>("sxg_cache_per_request").InstancePerLifetimeScope(); builder.RegisterType <MemoryCacheManager>().As <ICacheManager>().SingleInstance(); builder.RegisterType <SettingService>().As <ISettingService>().InstancePerLifetimeScope(); //work context builder.RegisterType <WebWorkContext>().As <IWorkContext>().InstancePerLifetimeScope(); builder.RegisterType <DefaultLogger>().As <ILogger>().InstancePerLifetimeScope(); //task builder.RegisterType <ScheduleTaskService>().As <IScheduleTaskService>().InstancePerLifetimeScope(); builder.RegisterType <AqiGradeService>().As <IAqiGradeService>().InstancePerLifetimeScope(); builder.RegisterType <RestAqiManager>().As <IAqiManager>().InstancePerLifetimeScope(); builder.RegisterType <SiteService>().As <ISiteService>().InstancePerLifetimeScope(); builder.RegisterType <DeviceService>().As <IDeviceService>().InstancePerLifetimeScope(); builder.RegisterType <JPush>().As <IPushService>().InstancePerLifetimeScope(); builder.RegisterType <NotifyService>().As <INotifyService>().InstancePerLifetimeScope(); }
/// <summary> /// Register services and interfaces /// </summary> /// <param name="builder">Container builder</param> /// <param name="typeFinder">Type finder</param> /// <param name="config">Config</param> public virtual void Register(ContainerBuilder builder, ITypeFinder typeFinder, NopConfig config) { //HTTP context and other related stuff builder.Register(c => //register FakeHttpContext when HttpContext is not available HttpContext.Current != null ? (new HttpContextWrapper(HttpContext.Current) as HttpContextBase) : (new FakeHttpContext("~/") as HttpContextBase)) .As <HttpContextBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Request) .As <HttpRequestBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Response) .As <HttpResponseBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Server) .As <HttpServerUtilityBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Session) .As <HttpSessionStateBase>() .InstancePerLifetimeScope(); //web helper builder.RegisterType <WebHelper>().As <IWebHelper>().InstancePerLifetimeScope(); //user agent helper builder.RegisterType <UserAgentHelper>().As <IUserAgentHelper>().InstancePerLifetimeScope(); //controllers builder.RegisterControllers(typeFinder.GetAssemblies().ToArray()); //data layer var dataSettingsManager = new DataSettingsManager(); var dataProviderSettings = dataSettingsManager.LoadSettings(); builder.Register(c => dataSettingsManager.LoadSettings()).As <DataSettings>(); builder.Register(x => new EfDataProviderManager(x.Resolve <DataSettings>())).As <BaseDataProviderManager>().InstancePerDependency(); builder.Register(x => x.Resolve <BaseDataProviderManager>().LoadDataProvider()).As <IDataProvider>().InstancePerDependency(); if (dataProviderSettings != null && dataProviderSettings.IsValid()) { var efDataProviderManager = new EfDataProviderManager(dataSettingsManager.LoadSettings()); var dataProvider = efDataProviderManager.LoadDataProvider(); dataProvider.InitConnectionFactory(); builder.Register <IDbContext>(c => new NopObjectContext(dataProviderSettings.DataConnectionString)).InstancePerLifetimeScope(); } else { builder.Register <IDbContext>(c => new NopObjectContext(dataSettingsManager.LoadSettings().DataConnectionString)).InstancePerLifetimeScope(); } builder.RegisterGeneric(typeof(EfRepository <>)).As(typeof(IRepository <>)).InstancePerLifetimeScope(); //plugins builder.RegisterType <PluginFinder>().As <IPluginFinder>().InstancePerLifetimeScope(); builder.RegisterType <OfficialFeedManager>().As <IOfficialFeedManager>().InstancePerLifetimeScope(); //cache managers if (config.RedisCachingEnabled) { builder.RegisterType <RedisConnectionWrapper>().As <IRedisConnectionWrapper>().SingleInstance(); builder.RegisterType <RedisCacheManager>().As <ICacheManager>().Named <ICacheManager>("nop_cache_static").InstancePerLifetimeScope(); } else { builder.RegisterType <MemoryCacheManager>().As <ICacheManager>().Named <ICacheManager>("nop_cache_static").SingleInstance(); } builder.RegisterType <PerRequestCacheManager>().As <ICacheManager>().Named <ICacheManager>("nop_cache_per_request").InstancePerLifetimeScope(); if (config.RunOnAzureWebsites) { builder.RegisterType <AzureWebsitesMachineNameProvider>().As <IMachineNameProvider>().SingleInstance(); } else { builder.RegisterType <DefaultMachineNameProvider>().As <IMachineNameProvider>().SingleInstance(); } //work context builder.RegisterType <WebWorkContext>().As <IWorkContext>().InstancePerLifetimeScope(); //store context builder.RegisterType <WebStoreContext>().As <IStoreContext>().InstancePerLifetimeScope(); //services builder.RegisterType <BackInStockSubscriptionService>().As <IBackInStockSubscriptionService>().InstancePerLifetimeScope(); builder.RegisterType <CategoryService>().As <ICategoryService>().InstancePerLifetimeScope(); builder.RegisterType <CompareProductsService>().As <ICompareProductsService>().InstancePerLifetimeScope(); builder.RegisterType <RecentlyViewedProductsService>().As <IRecentlyViewedProductsService>().InstancePerLifetimeScope(); builder.RegisterType <ManufacturerService>().As <IManufacturerService>().InstancePerLifetimeScope(); builder.RegisterType <PriceFormatter>().As <IPriceFormatter>().InstancePerLifetimeScope(); builder.RegisterType <ProductAttributeFormatter>().As <IProductAttributeFormatter>().InstancePerLifetimeScope(); builder.RegisterType <ProductAttributeParser>().As <IProductAttributeParser>().InstancePerLifetimeScope(); builder.RegisterType <ProductAttributeService>().As <IProductAttributeService>().InstancePerLifetimeScope(); builder.RegisterType <ProductService>().As <IProductService>().InstancePerLifetimeScope(); builder.RegisterType <CopyProductService>().As <ICopyProductService>().InstancePerLifetimeScope(); builder.RegisterType <SpecificationAttributeService>().As <ISpecificationAttributeService>().InstancePerLifetimeScope(); builder.RegisterType <ProductTemplateService>().As <IProductTemplateService>().InstancePerLifetimeScope(); builder.RegisterType <CategoryTemplateService>().As <ICategoryTemplateService>().InstancePerLifetimeScope(); builder.RegisterType <ManufacturerTemplateService>().As <IManufacturerTemplateService>().InstancePerLifetimeScope(); builder.RegisterType <TopicTemplateService>().As <ITopicTemplateService>().InstancePerLifetimeScope(); //use static cache (between HTTP requests) builder.RegisterType <ProductTagService>().As <IProductTagService>() .WithParameter(ResolvedParameter.ForNamed <ICacheManager>("nop_cache_static")) .InstancePerLifetimeScope(); builder.RegisterType <AddressAttributeFormatter>().As <IAddressAttributeFormatter>().InstancePerLifetimeScope(); builder.RegisterType <AddressAttributeParser>().As <IAddressAttributeParser>().InstancePerLifetimeScope(); builder.RegisterType <AddressAttributeService>().As <IAddressAttributeService>().InstancePerLifetimeScope(); builder.RegisterType <AddressService>().As <IAddressService>().InstancePerLifetimeScope(); builder.RegisterType <AffiliateService>().As <IAffiliateService>().InstancePerLifetimeScope(); builder.RegisterType <VendorService>().As <IVendorService>().InstancePerLifetimeScope(); builder.RegisterType <SearchTermService>().As <ISearchTermService>().InstancePerLifetimeScope(); builder.RegisterType <GenericAttributeService>().As <IGenericAttributeService>().InstancePerLifetimeScope(); builder.RegisterType <FulltextService>().As <IFulltextService>().InstancePerLifetimeScope(); builder.RegisterType <MaintenanceService>().As <IMaintenanceService>().InstancePerLifetimeScope(); builder.RegisterType <CustomerAttributeParser>().As <ICustomerAttributeParser>().InstancePerLifetimeScope(); builder.RegisterType <CustomerAttributeService>().As <ICustomerAttributeService>().InstancePerLifetimeScope(); builder.RegisterType <CustomerService>().As <ICustomerService>().InstancePerLifetimeScope(); builder.RegisterType <CustomerRegistrationService>().As <ICustomerRegistrationService>().InstancePerLifetimeScope(); builder.RegisterType <CustomerReportService>().As <ICustomerReportService>().InstancePerLifetimeScope(); //use static cache (between HTTP requests) builder.RegisterType <PermissionService>().As <IPermissionService>() .WithParameter(ResolvedParameter.ForNamed <ICacheManager>("nop_cache_static")) .InstancePerLifetimeScope(); //use static cache (between HTTP requests) builder.RegisterType <AclService>().As <IAclService>() .WithParameter(ResolvedParameter.ForNamed <ICacheManager>("nop_cache_static")) .InstancePerLifetimeScope(); //use static cache (between HTTP requests) builder.RegisterType <PriceCalculationService>().As <IPriceCalculationService>() .WithParameter(ResolvedParameter.ForNamed <ICacheManager>("nop_cache_static")) .InstancePerLifetimeScope(); builder.RegisterType <GeoLookupService>().As <IGeoLookupService>().InstancePerLifetimeScope(); builder.RegisterType <CountryService>().As <ICountryService>().InstancePerLifetimeScope(); builder.RegisterType <CurrencyService>().As <ICurrencyService>().InstancePerLifetimeScope(); builder.RegisterType <MeasureService>().As <IMeasureService>().InstancePerLifetimeScope(); builder.RegisterType <StateProvinceService>().As <IStateProvinceService>().InstancePerLifetimeScope(); builder.RegisterType <StoreService>().As <IStoreService>().InstancePerLifetimeScope(); //use static cache (between HTTP requests) builder.RegisterType <StoreMappingService>().As <IStoreMappingService>() .WithParameter(ResolvedParameter.ForNamed <ICacheManager>("nop_cache_static")) .InstancePerLifetimeScope(); builder.RegisterType <DiscountService>().As <IDiscountService>().InstancePerLifetimeScope(); //use static cache (between HTTP requests) builder.RegisterType <SettingService>().As <ISettingService>() .WithParameter(ResolvedParameter.ForNamed <ICacheManager>("nop_cache_static")) .InstancePerLifetimeScope(); builder.RegisterSource(new SettingsSource()); //use static cache (between HTTP requests) builder.RegisterType <LocalizationService>().As <ILocalizationService>() .WithParameter(ResolvedParameter.ForNamed <ICacheManager>("nop_cache_static")) .InstancePerLifetimeScope(); //use static cache (between HTTP requests) builder.RegisterType <LocalizedEntityService>().As <ILocalizedEntityService>() .WithParameter(ResolvedParameter.ForNamed <ICacheManager>("nop_cache_static")) .InstancePerLifetimeScope(); builder.RegisterType <LanguageService>().As <ILanguageService>().InstancePerLifetimeScope(); builder.RegisterType <DownloadService>().As <IDownloadService>().InstancePerLifetimeScope(); //picture service var useAzureBlobStorage = !String.IsNullOrEmpty(config.AzureBlobStorageConnectionString); if (useAzureBlobStorage) { //Windows Azure BLOB builder.RegisterType <AzurePictureService>().As <IPictureService>().InstancePerLifetimeScope(); } else { //standard file system builder.RegisterType <AmazonS3PictureService>().As <IPictureService>().InstancePerLifetimeScope(); } builder.RegisterType <MessageTemplateService>().As <IMessageTemplateService>().InstancePerLifetimeScope(); builder.RegisterType <QueuedEmailService>().As <IQueuedEmailService>().InstancePerLifetimeScope(); builder.RegisterType <NewsLetterSubscriptionService>().As <INewsLetterSubscriptionService>().InstancePerLifetimeScope(); builder.RegisterType <CampaignService>().As <ICampaignService>().InstancePerLifetimeScope(); builder.RegisterType <EmailAccountService>().As <IEmailAccountService>().InstancePerLifetimeScope(); builder.RegisterType <WorkflowMessageService>().As <IWorkflowMessageService>().InstancePerLifetimeScope(); builder.RegisterType <MessageTokenProvider>().As <IMessageTokenProvider>().InstancePerLifetimeScope(); builder.RegisterType <Tokenizer>().As <ITokenizer>().InstancePerLifetimeScope(); builder.RegisterType <EmailSender>().As <IEmailSender>().InstancePerLifetimeScope(); builder.RegisterType <CheckoutAttributeFormatter>().As <ICheckoutAttributeFormatter>().InstancePerLifetimeScope(); builder.RegisterType <CheckoutAttributeParser>().As <ICheckoutAttributeParser>().InstancePerLifetimeScope(); builder.RegisterType <CheckoutAttributeService>().As <ICheckoutAttributeService>().InstancePerLifetimeScope(); builder.RegisterType <GiftCardService>().As <IGiftCardService>().InstancePerLifetimeScope(); builder.RegisterType <OrderService>().As <IOrderService>().InstancePerLifetimeScope(); builder.RegisterType <OrderReportService>().As <IOrderReportService>().InstancePerLifetimeScope(); builder.RegisterType <OrderProcessingService>().As <IOrderProcessingService>().InstancePerLifetimeScope(); builder.RegisterType <OrderTotalCalculationService>().As <IOrderTotalCalculationService>().InstancePerLifetimeScope(); builder.RegisterType <ReturnRequestService>().As <IReturnRequestService>().InstancePerLifetimeScope(); builder.RegisterType <RewardPointService>().As <IRewardPointService>().InstancePerLifetimeScope(); builder.RegisterType <ShoppingCartService>().As <IShoppingCartService>().InstancePerLifetimeScope(); builder.RegisterType <CustomNumberFormatter>().As <ICustomNumberFormatter>().InstancePerLifetimeScope(); builder.RegisterType <PaymentService>().As <IPaymentService>().InstancePerLifetimeScope(); builder.RegisterType <EncryptionService>().As <IEncryptionService>().InstancePerLifetimeScope(); builder.RegisterType <FormsAuthenticationService>().As <IAuthenticationService>().InstancePerLifetimeScope(); //use static cache (between HTTP requests) builder.RegisterType <UrlRecordService>().As <IUrlRecordService>() .WithParameter(ResolvedParameter.ForNamed <ICacheManager>("nop_cache_static")) .InstancePerLifetimeScope(); builder.RegisterType <ShipmentService>().As <IShipmentService>().InstancePerLifetimeScope(); builder.RegisterType <ShippingService>().As <IShippingService>().InstancePerLifetimeScope(); builder.RegisterType <TaxCategoryService>().As <ITaxCategoryService>().InstancePerLifetimeScope(); builder.RegisterType <TaxService>().As <ITaxService>().InstancePerLifetimeScope(); builder.RegisterType <DefaultLogger>().As <ILogger>().InstancePerLifetimeScope(); //use static cache (between HTTP requests) builder.RegisterType <CustomerActivityService>().As <ICustomerActivityService>() .WithParameter(ResolvedParameter.ForNamed <ICacheManager>("nop_cache_static")) .InstancePerLifetimeScope(); bool databaseInstalled = DataSettingsHelper.DatabaseIsInstalled(); if (!databaseInstalled) { //installation service if (config.UseFastInstallationService) { builder.RegisterType <SqlFileInstallationService>().As <IInstallationService>().InstancePerLifetimeScope(); } else { builder.RegisterType <CodeFirstInstallationService>().As <IInstallationService>().InstancePerLifetimeScope(); } } builder.RegisterType <ForumService>().As <IForumService>().InstancePerLifetimeScope(); builder.RegisterType <PollService>().As <IPollService>().InstancePerLifetimeScope(); builder.RegisterType <BlogService>().As <IBlogService>().InstancePerLifetimeScope(); builder.RegisterType <WidgetService>().As <IWidgetService>().InstancePerLifetimeScope(); builder.RegisterType <TopicService>().As <ITopicService>().InstancePerLifetimeScope(); builder.RegisterType <NewsService>().As <INewsService>().InstancePerLifetimeScope(); builder.RegisterType <DateTimeHelper>().As <IDateTimeHelper>().InstancePerLifetimeScope(); builder.RegisterType <SitemapGenerator>().As <ISitemapGenerator>().InstancePerLifetimeScope(); builder.RegisterType <PageHeadBuilder>().As <IPageHeadBuilder>().InstancePerLifetimeScope(); builder.RegisterType <ScheduleTaskService>().As <IScheduleTaskService>().InstancePerLifetimeScope(); builder.RegisterType <ExportManager>().As <IExportManager>().InstancePerLifetimeScope(); builder.RegisterType <ImportManager>().As <IImportManager>().InstancePerLifetimeScope(); builder.RegisterType <PdfService>().As <IPdfService>().InstancePerLifetimeScope(); builder.RegisterType <ThemeProvider>().As <IThemeProvider>().InstancePerLifetimeScope(); builder.RegisterType <ThemeContext>().As <IThemeContext>().InstancePerLifetimeScope(); builder.RegisterType <ExternalAuthorizer>().As <IExternalAuthorizer>().InstancePerLifetimeScope(); builder.RegisterType <OpenAuthenticationService>().As <IOpenAuthenticationService>().InstancePerLifetimeScope(); builder.RegisterType <RoutePublisher>().As <IRoutePublisher>().SingleInstance(); //Register event consumers var consumers = typeFinder.FindClassesOfType(typeof(IConsumer <>)).ToList(); foreach (var consumer in consumers) { builder.RegisterType(consumer) .As(consumer.FindInterfaces((type, criteria) => { var isMatch = type.IsGenericType && ((Type)criteria).IsAssignableFrom(type.GetGenericTypeDefinition()); return(isMatch); }, typeof(IConsumer <>))) .InstancePerLifetimeScope(); } builder.RegisterType <EventPublisher>().As <IEventPublisher>().SingleInstance(); builder.RegisterType <SubscriptionService>().As <ISubscriptionService>().SingleInstance(); }
/// <summary> /// Register services and interfaces /// </summary> /// <param name="builder">Container builder</param> /// <param name="typeFinder">Type finder</param> /// <param name="config">Config</param> public virtual void Register(ContainerBuilder builder, ITypeFinder typeFinder, NopConfig config) { //HTTP context and other related stuff builder.Register(c => //register FakeHttpContext when HttpContext is not available HttpContext.Current != null ? (new HttpContextWrapper(HttpContext.Current) as HttpContextBase) : (new FakeHttpContext("~/") as HttpContextBase)) .As <HttpContextBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Request) .As <HttpRequestBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Response) .As <HttpResponseBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Server) .As <HttpServerUtilityBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Session) .As <HttpSessionStateBase>() .InstancePerLifetimeScope(); //web helper builder.RegisterType <WebHelper>().As <IWebHelper>().InstancePerLifetimeScope(); //work context builder.RegisterType <WebWorkContext>().As <IWorkContext>().InstancePerLifetimeScope(); //controllers builder.RegisterControllers(typeFinder.GetAssemblies().ToArray()); //data layer var dataSettingsManager = new DataSettingsManager(); var dataProviderSettings = dataSettingsManager.LoadSettings(); builder.Register(c => dataSettingsManager.LoadSettings()).As <DataSettings>(); builder.Register(x => new EfDataProviderManager(x.Resolve <DataSettings>())).As <BaseDataProviderManager>().InstancePerDependency(); builder.Register(x => x.Resolve <BaseDataProviderManager>().LoadDataProvider()).As <IDataProvider>().InstancePerDependency(); if (dataProviderSettings != null && dataProviderSettings.IsValid()) { var efDataProviderManager = new EfDataProviderManager(dataSettingsManager.LoadSettings()); var dataProvider = efDataProviderManager.LoadDataProvider(); dataProvider.InitConnectionFactory(); builder.Register <IDbContext>(c => new NopObjectContext(dataProviderSettings.DataConnectionString)).InstancePerLifetimeScope(); } else { builder.Register <IDbContext>(c => new NopObjectContext(dataSettingsManager.LoadSettings().DataConnectionString)).InstancePerLifetimeScope(); } // 注入ef到仓储 builder.RegisterGeneric(typeof(EfRepository <>)).As(typeof(IRepository <>)).InstancePerLifetimeScope(); //log builder.RegisterType <DefaultLogger>().As <ILogger>().InstancePerLifetimeScope(); //cache managers if (config != null && config.RedisCachingEnabled) { builder.RegisterType <RedisConnectionWrapper>().As <IRedisConnectionWrapper>().SingleInstance(); builder.RegisterType <RedisCacheManager>().As <ICacheManager>().Named <ICacheManager>("nop_cache_static").InstancePerLifetimeScope(); } else { builder.RegisterType <MemoryCacheManager>().As <ICacheManager>().Named <ICacheManager>("nop_cache_static").SingleInstance(); } builder.RegisterType <PerRequestCacheManager>().As <ICacheManager>().Named <ICacheManager>("nop_cache_per_request").InstancePerLifetimeScope(); // 注入Service及接口 //builder.RegisterAssemblyTypes(typeof(TestService).Assembly) // .AsImplementedInterfaces() // .InstancePerLifetimeScope(); builder.RegisterType <UserActivityService>().As <IUserActivityService>().InstancePerLifetimeScope(); //use static cache (between HTTP requests) builder.RegisterType <SettingService>().As <ISettingService>() .WithParameter(ResolvedParameter.ForNamed <ICacheManager>("nop_cache_static")) .InstancePerLifetimeScope(); builder.RegisterSource(new SettingsSource()); }
/// <summary> /// Register services and interfaces /// </summary> /// <param name="builder">Container builder</param> /// <param name="typeFinder">Type finder</param> /// <param name="config">Config</param> public virtual void Register(ContainerBuilder builder, ITypeFinder typeFinder, GameConfig config) { //web helper builder.RegisterType <WebHelper>().As <IWebHelper>().InstancePerLifetimeScope(); //user agent helper builder.RegisterType <UserAgentHelper>().As <IUserAgentHelper>().InstancePerLifetimeScope(); //data layer builder.RegisterType <GameCoreConventionSetBuilder>().As <ICoreConventionSetBuilder>().SingleInstance(); var dataSettingsManager = new DataSettingsManager(); var dataProviderSettings = dataSettingsManager.LoadSettings(); builder.Register(c => dataSettingsManager.LoadSettings()).As <DataSettings>(); builder.Register(x => new EfDataProviderManager(x.Resolve <DataSettings>())).As <BaseDataProviderManager>().InstancePerDependency(); builder.Register(x => x.Resolve <BaseDataProviderManager>().LoadDataProvider()).As <IDataProvider>().InstancePerDependency(); if (dataProviderSettings != null && dataProviderSettings.IsValid()) { var efDataProviderManager = new EfDataProviderManager(dataSettingsManager.LoadSettings()); var dataProvider = efDataProviderManager.LoadDataProvider(); builder.Register <IDbContext>(c => new GameObjectContext(dataProvider)).InstancePerLifetimeScope(); } else { builder.Register <IDbContext>(c => { dataProviderSettings = dataSettingsManager.LoadSettings(); if (dataProviderSettings != null && dataProviderSettings.IsValid()) { var efDataProviderManager = new EfDataProviderManager(dataSettingsManager.LoadSettings()); var dataProvider = efDataProviderManager.LoadDataProvider(); return(new GameObjectContext(dataProvider)); } else { return(new GameObjectContext(null)); } }).InstancePerLifetimeScope(); } //repositories builder.RegisterGeneric(typeof(EfRepository <>)).As(typeof(IRepository <>)).InstancePerLifetimeScope(); //cache manager builder.RegisterType <PerRequestCacheManager>().As <ICacheManager>().InstancePerLifetimeScope(); //static cache manager if (config.RedisCachingEnabled) { builder.RegisterType <RedisConnectionWrapper>().As <IRedisConnectionWrapper>().SingleInstance(); builder.RegisterType <RedisCacheManager>().As <IStaticCacheManager>().InstancePerLifetimeScope(); } else { builder.RegisterType <MemoryCacheManager>().As <IStaticCacheManager>().SingleInstance(); } //work context builder.RegisterType <WebWorkContext>().As <IWorkContext>().InstancePerLifetimeScope(); //services //builder.RegisterType<BackInStockSubscriptionService>().As<IBackInStockSubscriptionService>().InstancePerLifetimeScope(); builder.RegisterType <GenericAttributeService>().As <IGenericAttributeService>().InstancePerLifetimeScope(); //builder.RegisterType<FulltextService>().As<IFulltextService>().InstancePerLifetimeScope(); //builder.RegisterType<MaintenanceService>().As<IMaintenanceService>().InstancePerLifetimeScope(); builder.RegisterType <CustomerAttributeFormatter>().As <ICustomerAttributeFormatter>().InstancePerLifetimeScope(); builder.RegisterType <CustomerAttributeParser>().As <ICustomerAttributeParser>().InstancePerLifetimeScope(); builder.RegisterType <CustomerAttributeService>().As <ICustomerAttributeService>().InstancePerLifetimeScope(); builder.RegisterType <CustomerService>().As <ICustomerService>().InstancePerLifetimeScope(); builder.RegisterType <CustomerRegistrationService>().As <ICustomerRegistrationService>().InstancePerLifetimeScope(); //builder.RegisterType<CustomerReportService>().As<ICustomerReportService>().InstancePerLifetimeScope(); builder.RegisterType <PermissionService>().As <IPermissionService>().InstancePerLifetimeScope(); builder.RegisterType <AclService>().As <IAclService>().InstancePerLifetimeScope(); builder.RegisterType <LocalizationService>().As <ILocalizationService>().InstancePerLifetimeScope(); builder.RegisterType <LocalizedEntityService>().As <ILocalizedEntityService>().InstancePerLifetimeScope(); builder.RegisterType <LanguageService>().As <ILanguageService>().InstancePerLifetimeScope(); //builder.RegisterType<DownloadService>().As<IDownloadService>().InstancePerLifetimeScope(); //builder.RegisterType<MessageTemplateService>().As<IMessageTemplateService>().InstancePerLifetimeScope(); //builder.RegisterType<QueuedEmailService>().As<IQueuedEmailService>().InstancePerLifetimeScope(); //builder.RegisterType<NewsLetterSubscriptionService>().As<INewsLetterSubscriptionService>().InstancePerLifetimeScope(); //builder.RegisterType<CampaignService>().As<ICampaignService>().InstancePerLifetimeScope(); //builder.RegisterType<EmailAccountService>().As<IEmailAccountService>().InstancePerLifetimeScope(); //builder.RegisterType<EmailSender>().As<IEmailSender>().InstancePerLifetimeScope(); //builder.RegisterType<ReturnRequestService>().As<IReturnRequestService>().InstancePerLifetimeScope(); builder.RegisterType <EncryptionService>().As <IEncryptionService>().InstancePerLifetimeScope(); builder.RegisterType <CookieAuthenticationService>().As <IAuthenticationService>().InstancePerLifetimeScope(); builder.RegisterType <UrlRecordService>().As <IUrlRecordService>().InstancePerLifetimeScope(); builder.RegisterType <DefaultLogger>().As <ILogger>().InstancePerLifetimeScope(); builder.RegisterType <CustomerActivityService>().As <ICustomerActivityService>().InstancePerLifetimeScope(); builder.RegisterType <DateTimeHelper>().As <IDateTimeHelper>().InstancePerLifetimeScope(); builder.RegisterType <SitemapGenerator>().As <ISitemapGenerator>().InstancePerLifetimeScope(); builder.RegisterType <ScheduleTaskService>().As <IScheduleTaskService>().InstancePerLifetimeScope(); //builder.RegisterType<ExportManager>().As<IExportManager>().InstancePerLifetimeScope(); //builder.RegisterType<ImportManager>().As<IImportManager>().InstancePerLifetimeScope(); //builder.RegisterType<PdfService>().As<IPdfService>().InstancePerLifetimeScope(); //builder.RegisterType<UploadService>().As<IUploadService>().InstancePerLifetimeScope(); builder.RegisterType <ThemeProvider>().As <IThemeProvider>().InstancePerLifetimeScope(); builder.RegisterType <ThemeContext>().As <IThemeContext>().InstancePerLifetimeScope(); builder.RegisterType <ExternalAuthenticationService>().As <IExternalAuthenticationService>().InstancePerLifetimeScope(); builder.RegisterType <RoutePublisher>().As <IRoutePublisher>().SingleInstance(); builder.RegisterType <EventPublisher>().As <IEventPublisher>().SingleInstance(); builder.RegisterType <SubscriptionService>().As <ISubscriptionService>().SingleInstance(); builder.RegisterType <SettingService>().As <ISettingService>().InstancePerLifetimeScope(); builder.RegisterType <PageHeadBuilder>().As <IPageHeadBuilder>().InstancePerLifetimeScope(); builder.RegisterType <ActionContextAccessor>().As <IActionContextAccessor>().InstancePerLifetimeScope(); builder.RegisterType <MatchService>().As <IMatchService>().InstancePerLifetimeScope(); builder.RegisterType <EcbExchangeRateProvider>().As <IExchangeRateProvider>().InstancePerLifetimeScope(); builder.RegisterType <CurrencyService>().As <ICurrencyService>().InstancePerLifetimeScope(); builder.RegisterType <OrderService>().As <IOrderService>().InstancePerLifetimeScope(); builder.RegisterType <PaymentService>().As <IPaymentService>().InstancePerLifetimeScope(); builder.RegisterType <PriceFormatter>().As <IPriceFormatter>().InstancePerLifetimeScope(); //register all settings builder.RegisterSource(new SettingsSource()); //installation service if (!DataSettingsHelper.DatabaseIsInstalled()) { if (config.UseFastInstallationService) { builder.RegisterType <SqlFileInstallationService>().As <IInstallationService>().InstancePerLifetimeScope(); } else { builder.RegisterType <CodeFirstInstallationService>().As <IInstallationService>().InstancePerLifetimeScope(); } } //event consumers var consumers = typeFinder.FindClassesOfType(typeof(IConsumer <>)).ToList(); foreach (var consumer in consumers) { builder.RegisterType(consumer) .As(consumer.FindInterfaces((type, criteria) => { var isMatch = type.IsGenericType && ((Type)criteria).IsAssignableFrom(type.GetGenericTypeDefinition()); return(isMatch); }, typeof(IConsumer <>))) .InstancePerLifetimeScope(); } }
public virtual void Register(ContainerBuilder builder, ITypeFinder typeFinder) { //HTTP context and other related stuff builder.Register(c => //register FakeHttpContext when HttpContext is not available HttpContext.Current != null ? (new HttpContextWrapper(HttpContext.Current) as HttpContextBase) : (new FakeHttpContext("~/") as HttpContextBase)) .As <HttpContextBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Request) .As <HttpRequestBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Response) .As <HttpResponseBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Server) .As <HttpServerUtilityBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Session) .As <HttpSessionStateBase>() .InstancePerLifetimeScope(); //web helper builder.RegisterType <WebHelper>().As <IWebHelper>().InstancePerLifetimeScope(); ////user agent helper //builder.RegisterType<UserAgentHelper>().As<IUserAgentHelper>().InstancePerLifetimeScope(); //controllers builder.RegisterApiControllers(typeFinder.GetAssemblies().ToArray()); // [TO BE CHECKED FOR WEB API] //Added by Rahul Kumar on 25/02/2016 to include DI for WebAPI builder.RegisterControllers(typeFinder.GetAssemblies().ToArray()); //data layer var dataSettingsManager = new DataSettingsManager(); var dataProviderSettings = dataSettingsManager.LoadSettings(); builder.Register(c => dataSettingsManager.LoadSettings()).As <DataSettings>(); builder.Register(x => new EfDataProviderManager(x.Resolve <DataSettings>())).As <BaseDataProviderManager>().InstancePerDependency(); builder.Register(x => x.Resolve <BaseDataProviderManager>().LoadDataProvider()).As <IDataProvider>().InstancePerDependency(); if (dataProviderSettings != null && dataProviderSettings.IsValid()) { var efDataProviderManager = new EfDataProviderManager(dataSettingsManager.LoadSettings()); var dataProvider = efDataProviderManager.LoadDataProvider(); dataProvider.InitConnectionFactory(); builder.Register <IDbContext>(c => new ACSObjectContext(dataProviderSettings.DataConnectionString)).InstancePerLifetimeScope(); } else { builder.Register <IDbContext>(c => new ACSObjectContext(dataSettingsManager.LoadSettings().DataConnectionString)).InstancePerLifetimeScope(); } builder.RegisterGeneric(typeof(EfRepository <>)).As(typeof(IRepository <>)).InstancePerLifetimeScope(); ////plugins //builder.RegisterType<PluginFinder>().As<IPluginFinder>().InstancePerLifetimeScope(); //cache manager builder.RegisterType <MemoryCacheManager>().As <ICacheManager>().Named <ICacheManager>("nop_cache_static").SingleInstance(); builder.RegisterType <PerRequestCacheManager>().As <ICacheManager>().Named <ICacheManager>("nop_cache_per_request").InstancePerLifetimeScope(); //work context builder.RegisterType <WebWorkContext>().As <IWorkContext>().InstancePerLifetimeScope(); ////store context //builder.RegisterType<WebStoreContext>().As<IStoreContext>().InstancePerLifetimeScope(); ////builder.RegisterType<ContactService>().As<IContactService>().InstancePerLifetimeScope(); builder.RegisterType <SettingService>().As <ISettingService>().InstancePerLifetimeScope(); builder.RegisterType <NavigationService>().As <INavigationService>().InstancePerLifetimeScope(); /////builder.RegisterType<FlatService>().As<IFlatService>().InstancePerLifetimeScope(); builder.RegisterType <UserAuthenticationService>().As <IUserAuthenticationService>().InstancePerLifetimeScope(); //////builder.RegisterType < ACS.Services.User.UserService>().As<ACS.Services.User.IUserService>().InstancePerLifetimeScope(); //////builder.RegisterType<ACS.Services.Society.TowerService>().As<ACS.Services.Society.ITowerService>().InstancePerLifetimeScope(); //////builder.RegisterType<ACS.Services.Society.BlockService>().As<ACS.Services.Society.IBlockService>().InstancePerLifetimeScope(); //////builder.RegisterType<ACS.Services.NoticeBoard.NoticeBoardService>().As<ACS.Services.NoticeBoard.INoticeBoardService>().InstancePerLifetimeScope(); //////builder.RegisterType<ACS.Services.NoticeBoard.NoticeBoardVisibilityService>().As<ACS.Services.NoticeBoard.INoticeBoardVisibilityService>().InstancePerLifetimeScope(); //////builder.RegisterType<ACS.Services.NoticeBoard.NotificationService>().As<ACS.Services.NoticeBoard.INotificationService>().InstancePerLifetimeScope(); ////services //builder.RegisterType<BackInStockSubscriptionService>().As<IBackInStockSubscriptionService>().InstancePerLifetimeScope(); //builder.RegisterType<CategoryService>().As<ICategoryService>().InstancePerLifetimeScope(); //builder.RegisterType<CompareProductsService>().As<ICompareProductsService>().InstancePerLifetimeScope(); //builder.RegisterType<RecentlyViewedProductsService>().As<IRecentlyViewedProductsService>().InstancePerLifetimeScope(); //builder.RegisterType<ManufacturerService>().As<IManufacturerService>().InstancePerLifetimeScope(); //builder.RegisterType<PriceFormatter>().As<IPriceFormatter>().InstancePerLifetimeScope(); //builder.RegisterType<ProductAttributeFormatter>().As<IProductAttributeFormatter>().InstancePerLifetimeScope(); //builder.RegisterType<ProductAttributeParser>().As<IProductAttributeParser>().InstancePerLifetimeScope(); //builder.RegisterType<ProductAttributeService>().As<IProductAttributeService>().InstancePerLifetimeScope(); //builder.RegisterType<ProductService>().As<IProductService>().InstancePerLifetimeScope(); //builder.RegisterType<CopyProductService>().As<ICopyProductService>().InstancePerLifetimeScope(); //builder.RegisterType<SpecificationAttributeService>().As<ISpecificationAttributeService>().InstancePerLifetimeScope(); //builder.RegisterType<ProductTemplateService>().As<IProductTemplateService>().InstancePerLifetimeScope(); //builder.RegisterType<CategoryTemplateService>().As<ICategoryTemplateService>().InstancePerLifetimeScope(); //builder.RegisterType<ManufacturerTemplateService>().As<IManufacturerTemplateService>().InstancePerLifetimeScope(); ////pass MemoryCacheManager as cacheManager (cache settings between requests) //builder.RegisterType<ProductTagService>().As<IProductTagService>() // .WithParameter(ResolvedParameter.ForNamed<ICacheManager>("nop_cache_static")) // .InstancePerLifetimeScope(); //builder.RegisterType<AffiliateService>().As<IAffiliateService>().InstancePerLifetimeScope(); //builder.RegisterType<VendorService>().As<IVendorService>().InstancePerLifetimeScope(); //builder.RegisterType<AddressService>().As<IAddressService>().InstancePerLifetimeScope(); //builder.RegisterType<SearchTermService>().As<ISearchTermService>().InstancePerLifetimeScope(); // builder.RegisterType<GenericAttributeService>().As<IGenericAttributeService>().InstancePerLifetimeScope(); //builder.RegisterType<FulltextService>().As<IFulltextService>().InstancePerLifetimeScope(); //builder.RegisterType<MaintenanceService>().As<IMaintenanceService>().InstancePerLifetimeScope(); //builder.RegisterType<CustomerAttributeParser>().As<ICustomerAttributeParser>().InstancePerLifetimeScope(); //builder.RegisterType<CustomerAttributeService>().As<ICustomerAttributeService>().InstancePerLifetimeScope(); //builder.RegisterType<CustomerService>().As<ICustomerService>().InstancePerLifetimeScope(); //builder.RegisterType<CustomerRegistrationService>().As<ICustomerRegistrationService>().InstancePerLifetimeScope(); //builder.RegisterType<CustomerReportService>().As<ICustomerReportService>().InstancePerLifetimeScope(); ////pass MemoryCacheManager as cacheManager (cache settings between requests) //builder.RegisterType<PermissionService>().As<IPermissionService>() // .WithParameter(ResolvedParameter.ForNamed<ICacheManager>("nop_cache_static")) // .InstancePerLifetimeScope(); ////pass MemoryCacheManager as cacheManager (cache settings between requests) //builder.RegisterType<AclService>().As<IAclService>() // .WithParameter(ResolvedParameter.ForNamed<ICacheManager>("nop_cache_static")) // .InstancePerLifetimeScope(); ////pass MemoryCacheManager as cacheManager (cache settings between requests) //builder.RegisterType<PriceCalculationService>().As<IPriceCalculationService>() // .WithParameter(ResolvedParameter.ForNamed<ICacheManager>("nop_cache_static")) // .InstancePerLifetimeScope(); //builder.RegisterType<GeoLookupService>().As<IGeoLookupService>().InstancePerLifetimeScope(); //builder.RegisterType<CountryService>().As<ICountryService>().InstancePerLifetimeScope(); //builder.RegisterType<StateService>().As<IStateService>().InstancePerLifetimeScope(); builder.RegisterType <ACS.Services.Master.DepartmentService>().As <ACS.Services.Master.IDepartmentService>().InstancePerLifetimeScope(); builder.RegisterType <ACS.Services.Master.CommonListService>().As <ACS.Services.Master.ICommonListService>().InstancePerLifetimeScope(); builder.RegisterType <ACS.Services.User.UserService>().As <ACS.Services.User.IUserService>().InstancePerLifetimeScope(); builder.RegisterType <ACS.Services.Contact.ContactService>().As <ACS.Services.Contact.IContactService>().InstancePerLifetimeScope(); builder.RegisterType <ACS.Services.Master.DivisionService>().As <ACS.Services.Master.IDivisionService>().InstancePerLifetimeScope(); builder.RegisterType <ACS.Services.Common.CommonDropDown>().As <ACS.Services.Common.ICommonDropDown>().InstancePerLifetimeScope(); builder.RegisterType <ACS.Services.Master.Exeutive>().As <ACS.Services.Master.IExecutive>().InstancePerLifetimeScope(); //// service add by anjali //// created by 05/13/2016 for ProductTypeService builder.RegisterType <ACS.Services.Master.ProductTypeService>().As <ACS.Services.Master.IProductType>().InstancePerLifetimeScope(); builder.RegisterType <ACS.Services.Master.PageAccessService>().As <ACS.Services.Master.IPageAccessService>().InstancePerLifetimeScope(); // added by saddam 17/05/2016 builder.RegisterType <ACS.Services.Master.AuthorService>().As <ACS.Services.Master.IAuthorService>().InstancePerLifetimeScope(); //ended saddam //Added By sanjeet 18/05/2016 builder.RegisterType <ACS.Services.Master.PublishingCompanyService>().As <ACS.Services.Master.IPublishingCompanyService>().InstancePerLifetimeScope(); // // added by saddam 25/05/2016 builder.RegisterType <ACS.Services.Master.CustomProductService>().As <ACS.Services.Master.ICustomProductService>().InstancePerLifetimeScope(); builder.RegisterType <ACS.Services.Product.ProductMasterService>().As <ACS.Services.Product.IProductMasterService>().InstancePerLifetimeScope(); builder.RegisterType <ACS.Services.Product.ProductLicenseService>().As <ACS.Services.Product.IProductLicenseService>().InstancePerLifetimeScope(); builder.RegisterType <ACS.Services.Product.AddendumServices>().As <ACS.Services.Product.IAddendumServices>().InstancePerLifetimeScope(); //ended saddam // added by saddam 30/05/2016 builder.RegisterType <ACS.Services.Master.ApplicationSetUpService>().As <ACS.Services.Master.IApplicationSetUpService>().InstancePerLifetimeScope(); //ended saddam // added by saddam 14/06/2016 builder.RegisterType <ACS.Services.Other_Contract.OtherContractService>().As <ACS.Services.Other_Contract.IOtherContractService>().InstancePerLifetimeScope(); builder.RegisterType <ACS.Services.AuthorContract.AuthorContractService>().As <ACS.Services.AuthorContract.IAuthorContractService>().InstancePerLifetimeScope(); //ended saddam // added by saddam 01/07/2016 builder.RegisterType <ACS.Services.Master.ISBNService>().As <ACS.Services.Master.IISBNService>().InstancePerLifetimeScope(); //ended saddam // added by saddam 27/07/2016 builder.RegisterType <ACS.Services.RightsSelling.RightsSelling>().As <ACS.Services.RightsSelling.IRightsSelling>().InstancePerLifetimeScope(); builder.RegisterType <ACS.Services.PermissionsOutbound.PermissionsOutboundService>().As <ACS.Services.PermissionsOutbound.IPermissionsOutboundService>().InstancePerLifetimeScope(); //ended saddam //Added by Saddam on 02/08/2016 builder.RegisterType <ACS.Services.PermissionsInbound.PermissionsInboundService>().As <ACS.Services.PermissionsInbound.IPermissionsInboundService>().InstancePerLifetimeScope(); //ended by Saddam //Added by Suranjana 11/07/2016 builder.RegisterType <ACS.Services.Master.TypeOfRightsService>().As <ACS.Services.Master.ITypeOfRightsService>().InstancePerLifetimeScope(); //ended Suranjana //Added by Ankush //12/07/2016 builder.RegisterType <ACS.Services.Master.SubsidiaryRightsService>().As <ACS.Services.Master.ISubsidiaryRightsService>().InstancePerLifetimeScope(); //13/07/2016 builder.RegisterType <ACS.Services.Master.GeographicalService>().As <ACS.Services.Master.IGeographicalService>().InstancePerLifetimeScope(); //14/07/2016 builder.RegisterType <ACS.Services.Master.LanguageMasterService>().As <ACS.Services.Master.ILanguageMasterService>().InstancePerLifetimeScope(); //15/07/2016 builder.RegisterType <ACS.Services.Master.ImprintService>().As <ACS.Services.Master.IImprintService>().InstancePerLifetimeScope(); //ended Ankush //Added by Suranjana 13/07/2016 builder.RegisterType <ACS.Services.Master.TerritoryRightsService>().As <ACS.Services.Master.ITerritoryRightsService>().InstancePerLifetimeScope(); builder.RegisterType <ACS.Services.Master.ManuscriptDeliveryFormatService>().As <ACS.Services.Master.IManuscriptDeliveryFormatService>().InstancePerLifetimeScope(); builder.RegisterType <ACS.Services.Master.SupplyMaterialService>().As <ACS.Services.Master.ISupplyMaterialService>().InstancePerLifetimeScope(); builder.RegisterType <ACS.Services.Master.SeriesService>().As <ACS.Services.Master.ISeriesService>().InstancePerLifetimeScope(); //ended Suranjana //Added by Suranjana 14/07/2016 builder.RegisterType <ACS.Services.Master.PubCenterService>().As <ACS.Services.Master.IPubCenterService>().InstancePerLifetimeScope(); //ended Suranjana //Added by Suranjana 19/07/2016 builder.RegisterType <ACS.Services.Master.LicenseeService>().As <ACS.Services.Master.ILicenseeService>().InstancePerLifetimeScope(); builder.RegisterType <ACS.Services.Master.CopyrightHolderService>().As <ACS.Services.Master.ICopyrightHolderService>().InstancePerLifetimeScope(); //ended Suranjana /*Added by Rajneesh Singh on 01/08/2016*/ builder.RegisterType <ACS.Services.Product.SeriesProductEntryService>().As <ACS.Services.Product.ISeriesProductEntryService>().InstancePerLifetimeScope(); /*Ended by Rajneesh Singh*/ /*Added by Saddam on 27/09/2016*/ builder.RegisterType <ACS.Services.Alert.ServiceApplicationEmailSetup>().As <ACS.Services.Alert.IServiceApplicationEmailSetup>().InstancePerLifetimeScope(); /*Ended by Saddam*/ ////builder.RegisterType<ACS.Services.Directory.GeographyService>().As<ACS.Services.Directory.IGeographyService>().InstancePerLifetimeScope(); ////builder.RegisterType<ACS.Services.Directory.MasterValueService>().As<ACS.Services.Directory.IMasterValueService>().InstancePerLifetimeScope(); //////builder.RegisterType<ACS.Services.Contact.VisitorEntryService>().As<ACS.Services.Contact.IVisitorEntryService>().InstancePerLifetimeScope(); //////builder.RegisterType<TempStaffMasterService>().As<ITempStaffMasterService>().InstancePerLifetimeScope(); //////builder.RegisterType<StaffMasterService>().As<IStaffMasterService>().InstancePerLifetimeScope(); //////builder.RegisterType<SocietyService>().As<ISocietyService>().InstancePerLifetimeScope(); //builder.RegisterType<WorkflowMessageService>().As<IWorkflowMessageService>().InstancePerLifetimeScope(); //builder.RegisterType<MessageTokenProvider>().As<IMessageTokenProvider>().InstancePerLifetimeScope(); //builder.RegisterType<MessageTemplateService>().As<IMessageTemplateService>().InstancePerLifetimeScope(); //builder.RegisterType<QueuedEmailService>().As<IQueuedEmailService>().InstancePerLifetimeScope(); //builder.RegisterType<Tokenizer>().As<ITokenizer>().InstancePerLifetimeScope(); //builder.RegisterType<EmailAccountService>().As<IEmailAccountService>().InstancePerLifetimeScope(); //////builder.RegisterType<VehicleDetailService>().As<IVehicleDetailService>().InstancePerLifetimeScope(); //////builder.RegisterType<AssetMasterService>().As<IAssetMasterService>().InstancePerLifetimeScope(); //////builder.RegisterType<AssetAttributeService>().As<IAssetAttributeService>().InstancePerLifetimeScope(); //////builder.RegisterType<AssetAttributeValueService>().As<IAssetAttributeValueService>().InstancePerLifetimeScope(); //////builder.RegisterType<SocietyAssetLinkService>().As<ISocietyAssetLinkService>().InstancePerLifetimeScope(); //////builder.RegisterType<SocietyAssetAttributeValueService>().As<ISocietyAssetAttributeValueService>().InstancePerLifetimeScope(); //////builder.RegisterType<SocietyAssetImageService>().As<ISocietyAssetImageService>().InstancePerLifetimeScope(); //builder.RegisterType<CurrencyService>().As<ICurrencyService>().InstancePerLifetimeScope(); //builder.RegisterType<MeasureService>().As<IMeasureService>().InstancePerLifetimeScope(); //builder.RegisterType<StateProvinceService>().As<IStateProvinceService>().InstancePerLifetimeScope(); //builder.RegisterType<StoreService>().As<IStoreService>().InstancePerLifetimeScope(); ////pass MemoryCacheManager as cacheManager (cache settings between requests) //builder.RegisterType<StoreMappingService>().As<IStoreMappingService>() // .WithParameter(ResolvedParameter.ForNamed<ICacheManager>("nop_cache_static")) // .InstancePerLifetimeScope(); //builder.RegisterType<DiscountService>().As<IDiscountService>().InstancePerLifetimeScope(); //pass MemoryCacheManager as cacheManager (cache settings between requests) builder.RegisterType <SettingService>().As <ISettingService>() .WithParameter(ResolvedParameter.ForNamed <ICacheManager>("nop_cache_static")) .InstancePerLifetimeScope(); builder.RegisterSource(new SettingsSource()); ////pass MemoryCacheManager as cacheManager (cache locales between requests) builder.RegisterType <LocalizationService>().As <ILocalizationService>() .WithParameter(ResolvedParameter.ForNamed <ICacheManager>("nop_cache_static")) .InstancePerLifetimeScope(); //pass MemoryCacheManager as cacheManager (cache locales between requests) builder.RegisterType <LocalizedEntityService>().As <ILocalizedEntityService>() .WithParameter(ResolvedParameter.ForNamed <ICacheManager>("nop_cache_static")) .InstancePerLifetimeScope(); builder.RegisterType <LanguageService>().As <ILanguageService>().InstancePerLifetimeScope(); //builder.RegisterType<DownloadService>().As<IDownloadService>().InstancePerLifetimeScope(); //builder.RegisterType<PictureService>().As<IPictureService>().InstancePerLifetimeScope(); //builder.RegisterType<MessageTemplateService>().As<IMessageTemplateService>().InstancePerLifetimeScope(); //builder.RegisterType<QueuedEmailService>().As<IQueuedEmailService>().InstancePerLifetimeScope(); //builder.RegisterType<NewsLetterSubscriptionService>().As<INewsLetterSubscriptionService>().InstancePerLifetimeScope(); //builder.RegisterType<CampaignService>().As<ICampaignService>().InstancePerLifetimeScope(); //builder.RegisterType<EmailAccountService>().As<IEmailAccountService>().InstancePerLifetimeScope(); //builder.RegisterType<WorkflowMessageService>().As<IWorkflowMessageService>().InstancePerLifetimeScope(); //builder.RegisterType<MessageTokenProvider>().As<IMessageTokenProvider>().InstancePerLifetimeScope(); //builder.RegisterType<Tokenizer>().As<ITokenizer>().InstancePerLifetimeScope(); //builder.RegisterType<EmailSender>().As<IEmailSender>().InstancePerLifetimeScope(); //builder.RegisterType<CheckoutAttributeFormatter>().As<ICheckoutAttributeFormatter>().InstancePerLifetimeScope(); //builder.RegisterType<CheckoutAttributeParser>().As<ICheckoutAttributeParser>().InstancePerLifetimeScope(); //builder.RegisterType<CheckoutAttributeService>().As<ICheckoutAttributeService>().InstancePerLifetimeScope(); //builder.RegisterType<GiftCardService>().As<IGiftCardService>().InstancePerLifetimeScope(); //builder.RegisterType<OrderService>().As<IOrderService>().InstancePerLifetimeScope(); //builder.RegisterType<OrderReportService>().As<IOrderReportService>().InstancePerLifetimeScope(); //builder.RegisterType<OrderProcessingService>().As<IOrderProcessingService>().InstancePerLifetimeScope(); //builder.RegisterType<OrderTotalCalculationService>().As<IOrderTotalCalculationService>().InstancePerLifetimeScope(); //builder.RegisterType<ShoppingCartService>().As<IShoppingCartService>().InstancePerLifetimeScope(); //builder.RegisterType<PaymentService>().As<IPaymentService>().InstancePerLifetimeScope(); builder.RegisterType <EncryptionService>().As <IEncryptionService>().InstancePerLifetimeScope(); //builder.RegisterType<FormsAuthenticationService>().As<IAuthenticationService>().InstancePerLifetimeScope(); //builder.RegisterType<FlatAuthenticationService>().As<IFlatAuthenticationService>().InstancePerLifetimeScope(); ////pass MemoryCacheManager as cacheManager (cache settings between requests) //builder.RegisterType<UrlRecordService>().As<IUrlRecordService>() // .WithParameter(ResolvedParameter.ForNamed<ICacheManager>("nop_cache_static")) // .InstancePerLifetimeScope(); //builder.RegisterType<ShipmentService>().As<IShipmentService>().InstancePerLifetimeScope(); //builder.RegisterType<ShippingService>().As<IShippingService>().InstancePerLifetimeScope(); //builder.RegisterType<TaxCategoryService>().As<ITaxCategoryService>().InstancePerLifetimeScope(); //builder.RegisterType<TaxService>().As<ITaxService>().InstancePerLifetimeScope(); //builder.RegisterType<TaxCategoryService>().As<ITaxCategoryService>().InstancePerLifetimeScope(); builder.RegisterType <DefaultLogger>().As <ILogger>().InstancePerLifetimeScope(); ////pass MemoryCacheManager as cacheManager (cache settings between requests) //builder.RegisterType<CustomerActivityService>().As<ICustomerActivityService>() // .WithParameter(ResolvedParameter.ForNamed<ICacheManager>("nop_cache_static")) // .InstancePerLifetimeScope(); //if (!String.IsNullOrEmpty(ConfigurationManager.AppSettings["UseFastInstallationService"]) && // Convert.ToBoolean(ConfigurationManager.AppSettings["UseFastInstallationService"])) //{ // builder.RegisterType<SqlFileInstallationService>().As<IInstallationService>().InstancePerLifetimeScope(); //} //else //{ // builder.RegisterType<CodeFirstInstallationService>().As<IInstallationService>().InstancePerLifetimeScope(); //} //builder.RegisterType<ForumService>().As<IForumService>().InstancePerLifetimeScope(); //builder.RegisterType<PollService>().As<IPollService>().InstancePerLifetimeScope(); //builder.RegisterType<BlogService>().As<IBlogService>().InstancePerLifetimeScope(); //builder.RegisterType<WidgetService>().As<IWidgetService>().InstancePerLifetimeScope(); //builder.RegisterType<TopicService>().As<ITopicService>().InstancePerLifetimeScope(); //builder.RegisterType<NewsService>().As<INewsService>().InstancePerLifetimeScope(); //builder.RegisterType<DateTimeHelper>().As<IDateTimeHelper>().InstancePerLifetimeScope(); //builder.RegisterType<SitemapGenerator>().As<ISitemapGenerator>().InstancePerLifetimeScope(); //builder.RegisterType<PageHeadBuilder>().As<IPageHeadBuilder>().InstancePerLifetimeScope(); ////// builder.RegisterType<ScheduleTaskService>().As<IScheduleTaskService>().InstancePerLifetimeScope(); //builder.RegisterType<ExportManager>().As<IExportManager>().InstancePerLifetimeScope(); //builder.RegisterType<ImportManager>().As<IImportManager>().InstancePerLifetimeScope(); //builder.RegisterType<PdfService>().As<IPdfService>().InstancePerLifetimeScope(); //builder.RegisterType<ThemeProvider>().As<IThemeProvider>().InstancePerLifetimeScope(); //builder.RegisterType<ThemeContext>().As<IThemeContext>().InstancePerLifetimeScope(); //builder.RegisterType<ExternalAuthorizer>().As<IExternalAuthorizer>().InstancePerLifetimeScope(); //builder.RegisterType<OpenAuthenticationService>().As<IOpenAuthenticationService>().InstancePerLifetimeScope(); builder.RegisterType <RoutePublisher>().As <IRoutePublisher>().SingleInstance(); ////Register event consumers //var consumers = typeFinder.FindClassesOfType(typeof(IConsumer<>)).ToList(); //foreach (var consumer in consumers) //{ // builder.RegisterType(consumer) // .As(consumer.FindInterfaces((type, criteria) => // { // var isMatch = type.IsGenericType && ((Type)criteria).IsAssignableFrom(type.GetGenericTypeDefinition()); // return isMatch; // }, typeof(IConsumer<>))) // .InstancePerLifetimeScope(); //} //builder.RegisterType<EventPublisher>().As<IEventPublisher>().SingleInstance(); //builder.RegisterType<SubscriptionService>().As<ISubscriptionService>().SingleInstance(); }
public virtual void Register(ContainerBuilder builder, ITypeFinder typeFinder) { //HTTP context and other related stuff builder.Register(c => //register FakeHttpContext when HttpContext is not available HttpContext.Current != null ? (new HttpContextWrapper(HttpContext.Current) as HttpContextBase) : (new FakeHttpContext("~/") as HttpContextBase)) .As <HttpContextBase>() .InstancePerHttpRequest(); builder.Register(c => c.Resolve <HttpContextBase>().Request) .As <HttpRequestBase>() .InstancePerHttpRequest(); builder.Register(c => c.Resolve <HttpContextBase>().Response) .As <HttpResponseBase>() .InstancePerHttpRequest(); builder.Register(c => c.Resolve <HttpContextBase>().Server) .As <HttpServerUtilityBase>() .InstancePerHttpRequest(); builder.Register(c => c.Resolve <HttpContextBase>().Session) .As <HttpSessionStateBase>() .InstancePerHttpRequest(); //web helper builder.RegisterType <WebHelper>().As <IWebHelper>().InstancePerHttpRequest(); //controllers builder.RegisterControllers(typeFinder.GetAssemblies().ToArray()); //data layer var dataSettingsManager = new DataSettingsManager(); var dataProviderSettings = dataSettingsManager.LoadSettings(); builder.Register(c => dataSettingsManager.LoadSettings()).As <DataSettings>(); builder.Register(x => new EfDataProviderManager(x.Resolve <DataSettings>())).As <BaseDataProviderManager>().InstancePerDependency(); builder.Register(x => (IEfDataProvider)x.Resolve <BaseDataProviderManager>().LoadDataProvider()).As <IDataProvider>().InstancePerDependency(); builder.Register(x => (IEfDataProvider)x.Resolve <BaseDataProviderManager>().LoadDataProvider()).As <IEfDataProvider>().InstancePerDependency(); if (dataProviderSettings != null && dataProviderSettings.IsValid()) { var efDataProviderManager = new EfDataProviderManager(dataSettingsManager.LoadSettings()); var dataProvider = (IEfDataProvider)efDataProviderManager.LoadDataProvider(); dataProvider.InitConnectionFactory(); builder.Register <IDbContext>(c => new NopObjectContext(dataProviderSettings.DataConnectionString)).InstancePerHttpRequest(); } else { builder.Register <IDbContext>(c => new NopObjectContext(dataSettingsManager.LoadSettings().DataConnectionString)).InstancePerHttpRequest(); } builder.RegisterGeneric(typeof(EfRepository <>)).As(typeof(IRepository <>)).InstancePerHttpRequest(); //plugins builder.RegisterType <PluginFinder>().As <IPluginFinder>().InstancePerHttpRequest(); //cache manager builder.RegisterType <MemoryCacheManager>().As <ICacheManager>().Named <ICacheManager>("nop_cache_static").SingleInstance(); builder.RegisterType <PerRequestCacheManager>().As <ICacheManager>().Named <ICacheManager>("nop_cache_per_request").InstancePerHttpRequest(); //work context builder.RegisterType <WebWorkContext>().As <IWorkContext>().InstancePerHttpRequest(); //services builder.RegisterType <BackInStockSubscriptionService>().As <IBackInStockSubscriptionService>().InstancePerHttpRequest(); builder.RegisterType <CategoryService>().As <ICategoryService>().InstancePerHttpRequest(); builder.RegisterType <CompareProductsService>().As <ICompareProductsService>().InstancePerHttpRequest(); builder.RegisterType <RecentlyViewedProductsService>().As <IRecentlyViewedProductsService>().InstancePerHttpRequest(); builder.RegisterType <ManufacturerService>().As <IManufacturerService>().InstancePerHttpRequest(); builder.RegisterType <PriceCalculationService>().As <IPriceCalculationService>().InstancePerHttpRequest(); builder.RegisterType <PriceCalculationService>().As <IPriceCalculationService>().InstancePerHttpRequest(); builder.RegisterType <PriceFormatter>().As <IPriceFormatter>().InstancePerHttpRequest(); builder.RegisterType <ProductAttributeFormatter>().As <IProductAttributeFormatter>().InstancePerLifetimeScope(); builder.RegisterType <ProductAttributeParser>().As <IProductAttributeParser>().InstancePerHttpRequest(); builder.RegisterType <ProductAttributeService>().As <IProductAttributeService>().InstancePerHttpRequest(); builder.RegisterType <ProductService>().As <IProductService>().InstancePerHttpRequest(); builder.RegisterType <CopyProductService>().As <ICopyProductService>().InstancePerHttpRequest(); builder.RegisterType <ProductTagService>().As <IProductTagService>().InstancePerHttpRequest(); builder.RegisterType <SpecificationAttributeService>().As <ISpecificationAttributeService>().InstancePerHttpRequest(); builder.RegisterType <ProductTemplateService>().As <IProductTemplateService>().InstancePerHttpRequest(); builder.RegisterType <CategoryTemplateService>().As <ICategoryTemplateService>().InstancePerHttpRequest(); builder.RegisterType <ManufacturerTemplateService>().As <IManufacturerTemplateService>().InstancePerHttpRequest(); builder.RegisterType <AffiliateService>().As <IAffiliateService>().InstancePerHttpRequest(); builder.RegisterType <AddressService>().As <IAddressService>().InstancePerHttpRequest(); builder.RegisterType <GenericAttributeService>().As <IGenericAttributeService>().InstancePerHttpRequest(); builder.RegisterType <FulltextService>().As <IFulltextService>().InstancePerHttpRequest(); builder.RegisterType <MaintenanceService>().As <IMaintenanceService>().InstancePerHttpRequest(); builder.RegisterGeneric(typeof(ConfigurationProvider <>)).As(typeof(IConfigurationProvider <>)); builder.RegisterSource(new SettingsSource()); builder.RegisterType <CustomerContentService>().As <ICustomerContentService>().InstancePerHttpRequest(); builder.RegisterType <CustomerService>().As <ICustomerService>().InstancePerHttpRequest(); builder.RegisterType <CustomerRegistrationService>().As <ICustomerRegistrationService>().InstancePerHttpRequest(); builder.RegisterType <CustomerReportService>().As <ICustomerReportService>().InstancePerHttpRequest(); //pass MemoryCacheManager to SettingService as cacheManager (cache settings between requests) builder.RegisterType <PermissionService>().As <IPermissionService>() .WithParameter(ResolvedParameter.ForNamed <ICacheManager>("nop_cache_static")) .InstancePerHttpRequest(); //pass MemoryCacheManager to SettingService as cacheManager (cache settings between requests) builder.RegisterType <AclService>().As <IAclService>() .WithParameter(ResolvedParameter.ForNamed <ICacheManager>("nop_cache_static")) .InstancePerHttpRequest(); builder.RegisterType <GeoCountryLookup>().As <IGeoCountryLookup>().InstancePerHttpRequest(); builder.RegisterType <CountryService>().As <ICountryService>().InstancePerHttpRequest(); builder.RegisterType <CurrencyService>().As <ICurrencyService>().InstancePerHttpRequest(); builder.RegisterType <MeasureService>().As <IMeasureService>().InstancePerHttpRequest(); builder.RegisterType <StateProvinceService>().As <IStateProvinceService>().InstancePerHttpRequest(); builder.RegisterType <DiscountService>().As <IDiscountService>().InstancePerHttpRequest(); //pass MemoryCacheManager to SettingService as cacheManager (cache settings between requests) builder.RegisterType <SettingService>().As <ISettingService>() .WithParameter(ResolvedParameter.ForNamed <ICacheManager>("nop_cache_static")) .InstancePerHttpRequest(); //pass MemoryCacheManager to LocalizationService as cacheManager (cache locales between requests) builder.RegisterType <LocalizationService>().As <ILocalizationService>() .WithParameter(ResolvedParameter.ForNamed <ICacheManager>("nop_cache_static")) .InstancePerHttpRequest(); //pass MemoryCacheManager to LocalizedEntityService as cacheManager (cache locales between requests) builder.RegisterType <LocalizedEntityService>().As <ILocalizedEntityService>() .WithParameter(ResolvedParameter.ForNamed <ICacheManager>("nop_cache_static")) .InstancePerHttpRequest(); builder.RegisterType <LanguageService>().As <ILanguageService>().InstancePerHttpRequest(); builder.RegisterType <DownloadService>().As <IDownloadService>().InstancePerHttpRequest(); builder.RegisterType <PictureService>().As <IPictureService>().InstancePerHttpRequest(); builder.RegisterType <MessageTemplateService>().As <IMessageTemplateService>().InstancePerHttpRequest(); builder.RegisterType <QueuedEmailService>().As <IQueuedEmailService>().InstancePerHttpRequest(); builder.RegisterType <NewsLetterSubscriptionService>().As <INewsLetterSubscriptionService>().InstancePerHttpRequest(); builder.RegisterType <CampaignService>().As <ICampaignService>().InstancePerHttpRequest(); builder.RegisterType <EmailAccountService>().As <IEmailAccountService>().InstancePerHttpRequest(); builder.RegisterType <WorkflowMessageService>().As <IWorkflowMessageService>().InstancePerHttpRequest(); builder.RegisterType <MessageTokenProvider>().As <IMessageTokenProvider>().InstancePerHttpRequest(); builder.RegisterType <Tokenizer>().As <ITokenizer>().InstancePerHttpRequest(); builder.RegisterType <EmailSender>().As <IEmailSender>().InstancePerHttpRequest(); builder.RegisterType <CheckoutAttributeFormatter>().As <ICheckoutAttributeFormatter>().InstancePerHttpRequest(); builder.RegisterType <CheckoutAttributeParser>().As <ICheckoutAttributeParser>().InstancePerHttpRequest(); builder.RegisterType <CheckoutAttributeService>().As <ICheckoutAttributeService>().InstancePerHttpRequest(); builder.RegisterType <GiftCardService>().As <IGiftCardService>().InstancePerHttpRequest(); builder.RegisterType <OrderService>().As <IOrderService>().InstancePerHttpRequest(); builder.RegisterType <OrderReportService>().As <IOrderReportService>().InstancePerHttpRequest(); builder.RegisterType <OrderProcessingService>().As <IOrderProcessingService>().InstancePerHttpRequest(); builder.RegisterType <OrderTotalCalculationService>().As <IOrderTotalCalculationService>().InstancePerHttpRequest(); builder.RegisterType <ShoppingCartService>().As <IShoppingCartService>().InstancePerHttpRequest(); builder.RegisterType <PaymentService>().As <IPaymentService>().InstancePerHttpRequest(); builder.RegisterType <EncryptionService>().As <IEncryptionService>().InstancePerHttpRequest(); builder.RegisterType <FormsAuthenticationService>().As <IAuthenticationService>().InstancePerHttpRequest(); //pass MemoryCacheManager to UrlRecordService as cacheManager (cache settings between requests) builder.RegisterType <UrlRecordService>().As <IUrlRecordService>() .WithParameter(ResolvedParameter.ForNamed <ICacheManager>("nop_cache_static")) .InstancePerHttpRequest(); builder.RegisterType <ShipmentService>().As <IShipmentService>().InstancePerHttpRequest(); builder.RegisterType <ShippingService>().As <IShippingService>().InstancePerHttpRequest(); builder.RegisterType <TaxCategoryService>().As <ITaxCategoryService>().InstancePerHttpRequest(); builder.RegisterType <TaxService>().As <ITaxService>().InstancePerHttpRequest(); builder.RegisterType <TaxCategoryService>().As <ITaxCategoryService>().InstancePerHttpRequest(); builder.RegisterType <DefaultLogger>().As <ILogger>().InstancePerHttpRequest(); builder.RegisterType <CustomerActivityService>().As <ICustomerActivityService>().InstancePerHttpRequest(); builder.RegisterType <InstallationService>().As <IInstallationService>().InstancePerHttpRequest(); builder.RegisterType <ForumService>().As <IForumService>().InstancePerHttpRequest(); builder.RegisterType <PollService>().As <IPollService>().InstancePerHttpRequest(); builder.RegisterType <BlogService>().As <IBlogService>().InstancePerHttpRequest(); builder.RegisterType <WidgetService>().As <IWidgetService>().InstancePerHttpRequest(); builder.RegisterType <TopicService>().As <ITopicService>().InstancePerHttpRequest(); builder.RegisterType <NewsService>().As <INewsService>().InstancePerHttpRequest(); builder.RegisterType <DateTimeHelper>().As <IDateTimeHelper>().InstancePerHttpRequest(); builder.RegisterType <SitemapGenerator>().As <ISitemapGenerator>().InstancePerHttpRequest(); builder.RegisterType <PageHeadBuilder>().As <IPageHeadBuilder>().InstancePerHttpRequest(); builder.RegisterType <ScheduleTaskService>().As <IScheduleTaskService>().InstancePerHttpRequest(); builder.RegisterType <TelerikLocalizationServiceFactory>().As <Telerik.Web.Mvc.Infrastructure.ILocalizationServiceFactory>().InstancePerHttpRequest(); builder.RegisterType <ExportManager>().As <IExportManager>().InstancePerHttpRequest(); builder.RegisterType <ImportManager>().As <IImportManager>().InstancePerHttpRequest(); builder.RegisterType <MobileDeviceHelper>().As <IMobileDeviceHelper>().InstancePerHttpRequest(); builder.RegisterType <PdfService>().As <IPdfService>().InstancePerHttpRequest(); builder.RegisterType <ThemeProvider>().As <IThemeProvider>().InstancePerHttpRequest(); builder.RegisterType <ThemeContext>().As <IThemeContext>().InstancePerHttpRequest(); builder.RegisterType <ExternalAuthorizer>().As <IExternalAuthorizer>().InstancePerHttpRequest(); builder.RegisterType <OpenAuthenticationService>().As <IOpenAuthenticationService>().InstancePerHttpRequest(); builder.RegisterType <EmbeddedViewResolver>().As <IEmbeddedViewResolver>().SingleInstance(); builder.RegisterType <RoutePublisher>().As <IRoutePublisher>().SingleInstance(); //HTML Editor services builder.RegisterType <NetAdvDirectoryService>().As <INetAdvDirectoryService>().InstancePerHttpRequest(); builder.RegisterType <NetAdvImageService>().As <INetAdvImageService>().InstancePerHttpRequest(); //Register event consumers var consumers = typeFinder.FindClassesOfType(typeof(IConsumer <>)).ToList(); foreach (var consumer in consumers) { builder.RegisterType(consumer) .As(consumer.FindInterfaces((type, criteria) => { var isMatch = type.IsGenericType && ((Type)criteria).IsAssignableFrom(type.GetGenericTypeDefinition()); return(isMatch); }, typeof(IConsumer <>))) .InstancePerHttpRequest(); } builder.RegisterType <EventPublisher>().As <IEventPublisher>().SingleInstance(); builder.RegisterType <SubscriptionService>().As <ISubscriptionService>().SingleInstance(); }
public virtual void Register(ContainerBuilder builder, ITypeFinder typeFinder, CMSConfig config) { //HTTP context and other related stuff builder.Register(c => //register FakeHttpContext when HttpContext is not available HttpContext.Current != null ? (new HttpContextWrapper(HttpContext.Current) as HttpContextBase) : (new AutoHttpContext("~/") as HttpContextBase)) .As <HttpContextBase>().InstancePerRequest(); builder.Register(c => c.Resolve <HttpContextBase>().Request) .As <HttpRequestBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Response) .As <HttpResponseBase>() .InstancePerRequest(); builder.Register(c => c.Resolve <HttpContextBase>().Server) .As <HttpServerUtilityBase>() .InstancePerRequest(); //builder.Register(c => c.Resolve<HttpContextBase>().Session) // .As<HttpSessionStateBase>() // .InstancePerRequest(); builder.RegisterType <UrlHelper>().As <IUrlHelper>().InstancePerLifetimeScope(); //controllers builder.RegisterControllers(typeFinder.GetAssemblies().ToArray()); // Data-Layer var dataSettingsManager = new DataSettingsContext(); var dataProviderSettings = dataSettingsManager.LoadSettings(); builder.Register(c => dataSettingsManager.LoadSettings()).As <DatabaseSettings>(); builder.Register(x => new EfDataProviderManager(x.Resolve <DatabaseSettings>())).As <DataManager>().InstancePerDependency(); builder.Register(x => x.Resolve <DataManager>().LoadDataProvider()).As <IDataProvider>().InstancePerDependency(); if (dataProviderSettings != null && dataProviderSettings.IsValid()) { var efDataProviderManager = new EfDataProviderManager(dataSettingsManager.LoadSettings()); var dataProvider = efDataProviderManager.LoadDataProvider(); dataProvider.InitConnectionFactory(); builder.Register <EF.Data.IDbContext>(c => new EFDbContext(dataProviderSettings.DataConnectionString)).InstancePerLifetimeScope(); builder.Register <ITrackerContext>(c => new EFDbContext(dataProviderSettings.DataConnectionString)).InstancePerLifetimeScope(); } else { builder.Register <EF.Data.IDbContext>(c => new EFDbContext(dataSettingsManager.LoadSettings().DataConnectionString)).InstancePerLifetimeScope(); builder.Register <ITrackerContext>(c => new EFDbContext(dataSettingsManager.LoadSettings().DataConnectionString)).InstancePerLifetimeScope(); //builder.Register<IDbContext>(c => new EFDbContext(dataSettingsManager.LoadSettings().DataConnectionString == null ? "..." : dataSettingsManager.LoadSettings().DataConnectionString)).InstancePerLifetimeScope(); } builder.RegisterGeneric(typeof(EFRepository <>)).As(typeof(IRepository <>)).InstancePerLifetimeScope(); // Register Services builder.RegisterType <WebContext>().As <IWebContext>().InstancePerLifetimeScope(); builder.RegisterType <SocialSettingService>().As <ISocialSettingService>().InstancePerLifetimeScope(); builder.RegisterSource(new SettingsSource()); builder.RegisterType <SystemLogService>().As <ISystemLogService>().InstancePerLifetimeScope(); builder.RegisterType <AuditService>().As <IAuditService>().InstancePerLifetimeScope(); builder.RegisterType <BlogService>().As <IBlogService>().InstancePerLifetimeScope(); builder.RegisterType <CommentService>().As <ICommentService>().InstancePerLifetimeScope(); builder.RegisterType <EventService>().As <IEventService>().InstancePerLifetimeScope(); builder.RegisterType <PictureService>().As <IPictureService>().InstancePerLifetimeScope(); builder.RegisterType <ReplyService>().As <IReplyService>().InstancePerLifetimeScope(); builder.RegisterType <RoleService>().As <IRoleService>().InstancePerLifetimeScope(); builder.RegisterType <PermissionService>().As <IPermissionService>().InstancePerLifetimeScope(); builder.RegisterType <UserService>().As <IUserService>().InstancePerLifetimeScope(); builder.RegisterType <VideoService>().As <IVideoService>().InstancePerLifetimeScope(); builder.RegisterType <FormsAuthenticationService>().As <IAuthenticationService>().InstancePerLifetimeScope(); builder.RegisterType <UserContext>().As <IUserContext>().InstancePerLifetimeScope(); builder.RegisterType <SliderService>().As <ISliderService>().InstancePerLifetimeScope(); builder.RegisterType <SettingService>().As <ISettingService>().InstancePerLifetimeScope(); builder.RegisterType <ProductService>().As <IProductService>().InstancePerLifetimeScope(); builder.RegisterType <FileService>().As <IFileService>().InstancePerLifetimeScope(); builder.RegisterType <FeedbackService>().As <IFeedbackService>().InstancePerLifetimeScope(); builder.RegisterType <EmailService>().As <IEmailService>().InstancePerLifetimeScope(); builder.RegisterType <TemplateService>().As <ITemplateService>().InstancePerLifetimeScope(); builder.RegisterType <CustomPageService>().As <ICustomPageService>().InstancePerLifetimeScope(); builder.RegisterType <NewsService>().As <INewsService>().InstancePerLifetimeScope(); builder.RegisterType <UrlService>().As <IUrlService>().InstancePerLifetimeScope(); builder.RegisterType <SMSService>().As <ISMSService>().InstancePerLifetimeScope(); builder.RegisterType <RouteRegistrar>().As <IRouteRegistrar>().InstancePerLifetimeScope(); builder.RegisterType <SocialModelFactory>().As <ISocialModelFactory>().InstancePerLifetimeScope(); builder.RegisterType <SocialPluginService>().As <ISocialPluginService>().InstancePerLifetimeScope(); builder.RegisterType <SocialAuthorizer>().As <ISocialAuthorizer>().InstancePerLifetimeScope(); builder.RegisterType <OpenAuthenticationService>().As <IOpenAuthenticationService>().InstancePerLifetimeScope(); builder.RegisterType <LicenseService>().As <ILicenseService>().InstancePerLifetimeScope(); builder.RegisterType <CountryReverseGeocodeService>().As <ICountryReverseGeocodeService>().InstancePerLifetimeScope(); if (!DatabaseHelper.DatabaseIsInstalled()) { builder.RegisterType <InstallationService>().As <IInstallationService>().InstancePerLifetimeScope(); } builder.RegisterType <CultureHelper>().As <ICultureHelper>().InstancePerLifetimeScope(); // Scheduled Tasks builder.RegisterType <ScheduleTaskService>().As <IScheduleTaskService>().InstancePerLifetimeScope(); builder.RegisterType <DefaultMachineNameProvider>().As <IMachineNameProvider>().InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Session).As <HttpSessionStateBase>().InstancePerLifetimeScope(); }