/// <summary> /// 开始执行框架初始化 /// </summary> /// <param name="iocBuilder">依赖注入构建器</param> public void Initialize(IIocBuilder iocBuilder) { iocBuilder.CheckNotNull("iocBuilder"); JceConfig config = JceConfig.Instance; //依赖注入初始化 IServiceProvider provider = iocBuilder.Build(); //对象映射功能初始化 //日志功能初始化 IBasicLoggingInitializer loggingInitializer = provider.GetService <IBasicLoggingInitializer>(); if (!_basicLoggingInitialized && loggingInitializer != null) { loggingInitializer.Initialize(config.LoggingConfig); _basicLoggingInitialized = true; } //数据库初始化 //实体信息初始化 //功能信息初始化 }
public static void RegisterRepositories(Type dbContextType, IIocBuilder builder) { AutoRepositoryTypesAttribute autoRepositoryAttr = dbContextType.GetSingleAttributeOrNull <AutoRepositoryTypesAttribute>() ?? EfAutoRepositoryTypes.Default; foreach (EntityTypeInfo entityTypeInfo in DbContextHelper.GetEntityTypeInfos(dbContextType)) { Type implType; Type primaryKeyType = EntityHelper.GetPrimaryKeyType(entityTypeInfo.EntityType); if (primaryKeyType == typeof(int)) { Type genericRepositoryType = autoRepositoryAttr.RepositoryInterface.MakeGenericType(entityTypeInfo.EntityType); implType = autoRepositoryAttr.RepositoryImplementation.GetGenericArguments().Length == 1 ? autoRepositoryAttr.RepositoryImplementation.MakeGenericType(entityTypeInfo.EntityType) : autoRepositoryAttr.RepositoryImplementation.MakeGenericType(entityTypeInfo.DeclaringType, entityTypeInfo.EntityType); builder.RegisterServices(r => r.UseBuilder(cb => cb.RegisterType(implType).As(genericRepositoryType).AsImplementedInterfaces().InjectPropertiesAsAutowired())); } else { Type genericRepositoryTypeWithPrimaryKey = autoRepositoryAttr.RepositoryInterfaceWithPrimaryKey.MakeGenericType(entityTypeInfo.EntityType, primaryKeyType); implType = autoRepositoryAttr.RepositoryImplementationWithPrimaryKey.GetGenericArguments().Length == 2 ? autoRepositoryAttr.RepositoryImplementationWithPrimaryKey.MakeGenericType(entityTypeInfo.EntityType, primaryKeyType) : autoRepositoryAttr.RepositoryImplementationWithPrimaryKey.MakeGenericType(entityTypeInfo.DeclaringType, entityTypeInfo.EntityType, primaryKeyType); builder.RegisterServices(r => r.UseBuilder(cb => cb.RegisterType(implType).As(genericRepositoryTypeWithPrimaryKey).AsImplementedInterfaces().InjectPropertiesAsAutowired())); } } }
public void Load(IIocBuilder builder) { builder.RegisterType <Core.Configurations.IConfigurationProvider, Configurations.ModuleConfigurationProvider>(); builder.RegisterType <Core.Localization.ILocalizer, JsonLocalizer>(LifeTimeScope.Singleton, autoWire: true, getConstructorParameters: (ctx) => { Dictionary <string, object> paras = new Dictionary <string, object>(); paras.Add("paths", "Localization, Modules/*/Localization"); return(paras); }); builder.RegisterType <IObjectProvider <IEnumerable <DAF.Web.Menu.MenuGroup> >, ModuleMenuGroupProvider>(LifeTimeScope.Singleton, autoWire: true, getConstructorParameters: (ctx) => { Dictionary <string, object> paras = new Dictionary <string, object>(); paras.Add("paths", "App_Data, Modules/*/App_Data"); paras.Add("fileName", "menu.js"); return(paras); }); builder.RegisterType <IAppSettingProvider, AppSettingProvider>(LifeTimeScope.Singleton); builder.RegisterType <IBasicDataProvider, BasicDataProvider>(LifeTimeScope.Singleton); builder.RegisterType <ICategoryProvider, CategoryProvider>(LifeTimeScope.Singleton); builder.RegisterType <IContentProvider, ContentProvider>(LifeTimeScope.Singleton); builder.RegisterType <IWebSiteProvider, WebSiteProvider>(LifeTimeScope.Singleton); builder.RegisterType <IPageTemplateProvider, PageTemplateProvider>(LifeTimeScope.Singleton); builder.RegisterType <IMenuProvider, MenuProvider>(LifeTimeScope.Singleton); builder.RegisterType <IUserGroupProvider, UserGroupProvider>(LifeTimeScope.Singleton); builder.RegisterType <ITemplateTypeProvider, TemplateTypeProvider>(LifeTimeScope.Singleton); builder.RegisterType <IWidgetTypeProvider, WidgetTypeProvider>(LifeTimeScope.Singleton); builder.RegisterType <IPageProvider, PageProvider>(LifeTimeScope.Singleton); builder.RegisterType <IAppEventHandler, CmsAppEventHandler>(); builder.RegisterType <DAF.SSO.Client.IDefaultSessionProvider, CmsDefaultSessionProvider>(LifeTimeScope.Singleton); }
public void Load(IIocBuilder builder) { builder.RegisterType<Core.Configurations.IConfigurationProvider, Configurations.ModuleConfigurationProvider>(); builder.RegisterType<Core.Localization.ILocalizer, JsonLocalizer>(LifeTimeScope.Singleton, autoWire: true, getConstructorParameters: (ctx) => { Dictionary<string, object> paras = new Dictionary<string, object>(); paras.Add("paths", "Localization, Modules/*/Localization"); return paras; }); builder.RegisterType<IObjectProvider<IEnumerable<DAF.Web.Menu.MenuGroup>>, ModuleMenuGroupProvider>(LifeTimeScope.Singleton, autoWire: true, getConstructorParameters: (ctx) => { Dictionary<string, object> paras = new Dictionary<string, object>(); paras.Add("paths", "App_Data, Modules/*/App_Data"); paras.Add("fileName", "menu.js"); return paras; }); builder.RegisterType<IAppSettingProvider, AppSettingProvider>(LifeTimeScope.Singleton); builder.RegisterType<IBasicDataProvider, BasicDataProvider>(LifeTimeScope.Singleton); builder.RegisterType<ICategoryProvider, CategoryProvider>(LifeTimeScope.Singleton); builder.RegisterType<IContentProvider, ContentProvider>(LifeTimeScope.Singleton); builder.RegisterType<IWebSiteProvider, WebSiteProvider>(LifeTimeScope.Singleton); builder.RegisterType<IPageTemplateProvider, PageTemplateProvider>(LifeTimeScope.Singleton); builder.RegisterType<IMenuProvider, MenuProvider>(LifeTimeScope.Singleton); builder.RegisterType<IUserGroupProvider, UserGroupProvider>(LifeTimeScope.Singleton); builder.RegisterType<ITemplateTypeProvider, TemplateTypeProvider>(LifeTimeScope.Singleton); builder.RegisterType<IWidgetTypeProvider, WidgetTypeProvider>(LifeTimeScope.Singleton); builder.RegisterType<IPageProvider, PageProvider>(LifeTimeScope.Singleton); builder.RegisterType<IAppEventHandler, CmsAppEventHandler>(); builder.RegisterType<DAF.SSO.Client.IDefaultSessionProvider, CmsDefaultSessionProvider>(LifeTimeScope.Singleton); }
public static IIocBuilder UseVirgo(this IIocBuilder builder) { var assembly = typeof(VirgoExtensions).Assembly; builder.RegisterServices(r => r.RegisterAssemblyByConvention(assembly)); return(builder); }
public void Register(IIocBuilder builder, Type type) { var docAttr = type.GetCustomAttribute <DocumentAttribute>(true); if (docAttr != null) { if (string.IsNullOrEmpty(docAttr.TypeName)) { docAttr.TypeName = type.Name; } if (docAttr.ObjectType == null) { docAttr.ObjectType = type; } if (docAttr.DocumentBuilder == null) { docAttr.DocumentBuilder = typeof(AttributeDocumentBuilder); } if (docAttr.IndexPathBuilder == null) { docAttr.IndexPathBuilder = typeof(LocaleDateTimeIndexPathBuilder); } if (docAttr.FacetFieldNameProvider == null) { docAttr.FacetFieldNameProvider = typeof(LocaleFacetFieldNameProvider); } AttributedTypes.SearchTypes.Add(type.Name, docAttr); } }
public void Load(IIocBuilder builder) { builder.RegisterType <IObjectProvider <SSOServer>, WebJsonFileObjectProvider <SSOServer> >(LifeTimeScope.Singleton, getConstructorParameters: (ctx) => { Dictionary <string, object> paras = new Dictionary <string, object>(); paras.Add("jsonFile", "~/App_Data/sso_server.js"); return(paras); }); builder.RegisterType <IObjectProvider <SSOClient[]>, WebJsonFileObjectProvider <SSOClient[]> >(LifeTimeScope.Singleton, getConstructorParameters: (ctx) => { Dictionary <string, object> paras = new Dictionary <string, object>(); paras.Add("jsonFile", "~/App_Data/sso_clients.js"); return(paras); }); builder.RegisterType <IObjectProvider <SSOClient>, WebJsonFileObjectProvider <SSOClient> >(LifeTimeScope.Singleton, getConstructorParameters: (ctx) => { Dictionary <string, object> paras = new Dictionary <string, object>(); paras.Add("jsonFile", "~/App_Data/sso_client.js"); return(paras); }); builder.RegisterType <ISSOConfiguration, DefaultSSOConfiguration>(LifeTimeScope.Singleton); builder.RegisterType <Client.ISSOClientProvider, SSOClientProvider>(LifeTimeScope.Singleton); builder.RegisterType <Client.IDefaultSessionProvider, Client.DefaultSessionProvider>(LifeTimeScope.Singleton); }
public static IIocBuilder UseStoveRabbitMQ( [NotNull] this IIocBuilder builder, [NotNull] Func <IStoveRabbitMQConfiguration, IStoveRabbitMQConfiguration> rabbitMQConfigurer) { Check.NotNull(rabbitMQConfigurer, nameof(rabbitMQConfigurer)); builder .RegisterServices(r => { r.RegisterAssemblyByConvention(typeof(StoveRabbitMQRegistrationExtensions).GetAssembly()); r.Register <IStoveRabbitMQConfiguration, StoveRabbitMQConfiguration>(Lifetime.Singleton); r.Register <IMessageBus, StoveRabbitMQMessageBus>(); r.Register(ctx => rabbitMQConfigurer); }); builder.RegisterServices(r => r.UseBuilder(cb => { cb.Register(ctx => { var configuration = ctx.Resolve <IStoveRabbitMQConfiguration>(); IBusControl busControl = Bus.Factory.CreateUsingRabbitMq(cfg => { EnsureStoveDefaults(cfg, configuration); }); return(busControl); }).SingleInstance() .As <IBusControl>() .As <IBus>(); })); return(builder); }
/// <summary> /// Uses the stove migrator. /// </summary> /// <param name="builder">The builder.</param> /// <returns></returns> public static IIocBuilder UseStoveMigrator(this IIocBuilder builder) { return(builder.RegisterServices(r => r.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly())) .UseStoveEntityFramework() .UseStoveDbContextEfTransactionStrategy() .UseStoveTypedConnectionStringResolver()); }
public static IIocBuilder UseStoveMapster([NotNull] this IIocBuilder builder) { return(builder .RegisterServices(r => r.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly())) .RegisterServices(r => r.Register <IStoveMapsterConfiguration, StoveMapsterConfiguration>(Lifetime.Singleton)) .RegisterServices(r => r.Register <IObjectMapper, MapsterObjectMapper>(Lifetime.Singleton))); }
public static IIocBuilder UseStoveNLog(this IIocBuilder builder) { builder.RegisterServices(r => r.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly())); builder.RegisterServices(r => r.Register <ILogger>(context => new LoggerAdapter(LogManager.GetCurrentClassLogger()), Lifetime.Singleton)); builder.RegisterServices(r => r.UseBuilder(containerBuilder => containerBuilder.RegisterModule <NLogRegistrarModule>())); return(builder); }
private static void AutoRegisterRepositories(IIocBuilder builder) { builder.RegisterServices(r => r.UseBuilder(cb => { if (!cb.Properties.ContainsKey(StoveConsts.OrmRegistrarContextKey)) { throw new StoveInitializationException("Dapper registration should be after EntityFramework or NHibernate registration" + " use StoveEntityFramework() or StoveNHibernate() registration methods before use StoveDapper()."); } var ormRegistrars = cb.Properties[StoveConsts.OrmRegistrarContextKey].As <IList <ISecondaryOrmRegistrar> >(); ormRegistrars.ForEach(registrar => { switch (registrar.OrmContextKey) { case StoveConsts.Orms.EntityFramework: registrar.RegisterRepositories(EfBasedDapperAutoRepositoryTypes.Default); break; case StoveConsts.Orms.NHibernate: registrar.RegisterRepositories(NhBasedDapperAutoRepositoryTypes.Default); break; } }); })); }
/// <summary> /// Uses the stove entity framework core. /// </summary> /// <param name="builder">The builder.</param> /// <param name="configurerAction"></param> /// <returns></returns> public static IIocBuilder UseStoveEntityFrameworkCore( this IIocBuilder builder, Func <IStoveEfCoreConfiguration, IStoveEfCoreConfiguration> configurerAction = null) { return(builder .RegisterServices(r => { var ormRegistrars = new List <ISecondaryOrmRegistrar>(); r.OnRegistering += (sender, args) => { if (typeof(StoveDbContext).GetTypeInfo().IsAssignableFrom(args.ImplementationType)) { EfCoreRepositoryRegistrar.RegisterRepositories(args.ImplementationType, builder); ormRegistrars.Add(new EfCoreBasedSecondaryOrmRegistrar(builder, args.ImplementationType, EfCoreDbContextEntityFinder.GetEntityTypeInfos, EntityHelper.GetPrimaryKeyType)); args.ContainerBuilder.Properties[StoveConsts.OrmRegistrarContextKey] = ormRegistrars; } }; r.RegisterAssemblyByConvention(typeof(StoveEntityFrameworkCoreRegistrationExtensions).GetAssembly()); r.RegisterGeneric(typeof(IDbContextProvider <>), typeof(UnitOfWorkDbContextProvider <>)); r.Register <IUnitOfWorkDefaultOptions, UnitOfWorkDefaultOptions>(Lifetime.Singleton); r.Register <IUnitOfWorkFilterExecuter, NullUnitOfWorkFilterExecuter>(); if (configurerAction != null) { r.Register(ctx => configurerAction); } }) .UseStoveEntityFrameworkCommon()); }
public void Register(IIocBuilder builder, Type type) { if (!type.IsAbstract && type.IsClass && typeof(ICommand).IsAssignableFrom(type)) { builder.RegisterType(typeof(ICommand), type, LifeTimeScope.Transient, type.FullName); } }
/// <summary> /// 初始化本地程序集框架 /// </summary> public static IAppBuilder UseLocalInitialize(this IAppBuilder app, IIocBuilder iocBuilder) { iocBuilder.CheckNotNull("iocBuilder" ); IFrameworkInitializer initializer = new FrameworkInitializer(); initializer.Initialize(iocBuilder); return app; }
public void Register(IIocBuilder builder, Type type) { if (!type.IsAbstract && type.IsClass && typeof(IStartup).IsAssignableFrom(type)) { builder.RegisterType(typeof(IStartup), type, LifeTimeScope.Transient, type.FullName); } }
protected TestBaseWithIocBuilder() { LocalIocManager = new IocManager(); IocBuilder = Autofac.Extras.IocManager.IocBuilder.New .UseAutofacContainerBuilder() .RegisterIocManager(LocalIocManager); }
/// <summary> /// 初始化WebApi框架 /// </summary> public static IAppBuilder UseTomNetWebApi(this IAppBuilder app, IIocBuilder iocBuilder) { iocBuilder.CheckNotNull("iocBuilder"); IFrameworkInitializer initializer = new FrameworkInitializer(); initializer.Initialize(iocBuilder); return app; }
public void Load(IIocBuilder builder) { builder.RegisterType<IDbProvider, DefaultDbProvider>(); builder.RegisterType<ISqlFileExecutor, DefaultSqlFileExecutor>(); builder.RegisterFactory<DbContext, DbContextFactory>(); builder.RegisterGeneric(typeof(IRepository<>), typeof(DbContextRepository<>)); }
public void Load(IIocBuilder builder) { builder.RegisterType<IObjectProvider<SSOServer>, WebJsonFileObjectProvider<SSOServer>>(LifeTimeScope.Singleton, getConstructorParameters: (ctx) => { Dictionary<string, object> paras = new Dictionary<string, object>(); paras.Add("jsonFile", "~/App_Data/sso_server.js"); return paras; }); builder.RegisterType<IObjectProvider<SSOClient[]>, WebJsonFileObjectProvider<SSOClient[]>>(LifeTimeScope.Singleton, getConstructorParameters: (ctx) => { Dictionary<string, object> paras = new Dictionary<string, object>(); paras.Add("jsonFile", "~/App_Data/sso_clients.js"); return paras; }); builder.RegisterType<IObjectProvider<SSOClient>, WebJsonFileObjectProvider<SSOClient>>(LifeTimeScope.Singleton, getConstructorParameters: (ctx) => { Dictionary<string, object> paras = new Dictionary<string, object>(); paras.Add("jsonFile", "~/App_Data/sso_client.js"); return paras; }); builder.RegisterType<ISSOConfiguration, DefaultSSOConfiguration>(LifeTimeScope.Singleton); builder.RegisterType<Server.ISSOServerProvider, SSOServerProvider>(LifeTimeScope.Singleton); builder.RegisterType<Client.ISSOClientProvider, SSOClientProvider>(LifeTimeScope.Singleton); builder.RegisterType<Client.IDefaultSessionProvider, Client.DefaultSessionProvider>(LifeTimeScope.Singleton); }
public void Load(IIocBuilder builder) { builder.RegisterType <IDbProvider, DefaultDbProvider>(); builder.RegisterType <ISqlFileExecutor, DefaultSqlFileExecutor>(); builder.RegisterFactory <DbContext, DbContextFactory>(); builder.RegisterGeneric(typeof(IRepository <>), typeof(DbContextRepository <>)); }
public static void RegisterType <IT, TT>(this IIocBuilder builder, LifeTimeScope scope = LifeTimeScope.Transient, string name = null, bool autoWire = false, Func <IIocContext, IDictionary <string, object> > getConstructorParameters = null, Func <IIocContext, TT, TT> onActivating = null, Action <IIocContext, TT> onActivated = null) where TT : class, IT { Func <IIocContext, object, object> onObjActivaing = null; Action <IIocContext, object> onObjActivated = null; if (onActivating != null) { onObjActivaing = (ctx, obj) => { var nobj = onActivating(ctx, (TT)obj); return(nobj); }; } if (onActivated != null) { onObjActivated = (ctx, obj) => { onActivated(ctx, (TT)obj); }; } builder.RegisterType(typeof(IT), typeof(TT), scope, name, autoWire, getConstructorParameters, onObjActivaing, onObjActivated); }
public static IIocBuilder UseInfrastructure(this IIocBuilder builder) { var assembly = typeof(InfrastruxtureExtensions).Assembly; builder.RegisterServices(r => r.RegisterAssemblyByConvention(assembly)); return(builder); }
public static IIocBuilder UseStoveNHibernate(this IIocBuilder builder, Func <IStoveNHibernateConfiguration, IStoveNHibernateConfiguration> stoveNhConfigurer) { return(builder.RegisterServices(r => { r.Register(ctx => stoveNhConfigurer); r.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly()); r.RegisterGeneric(typeof(IRepository <>), typeof(NhRepositoryBase <>)); r.RegisterGeneric(typeof(IRepository <,>), typeof(NhRepositoryBase <,>)); r.Register(ctx => { var configuration = ctx.Resolver.Resolve <IStoveNHibernateConfiguration>(); Func <IStoveNHibernateConfiguration, IStoveNHibernateConfiguration> configurer = ctx.Resolver.Resolve <IStoveStartupConfiguration>().GetConfigurerIfExists <IStoveNHibernateConfiguration>(); configuration = configurer(configuration); return configuration .FluentConfiguration .ExposeConfiguration(cfg => cfg.SetInterceptor(ctx.Resolver.Resolve <StoveNHibernateInterceptor>())) .BuildSessionFactory(); }, Lifetime.Singleton); var ormRegistrars = new List <ISecondaryOrmRegistrar>(); ormRegistrars.Add(new NhBasedSecondaryOrmRegistrar(builder)); r.UseBuilder(cb => { cb.Properties[StoveConsts.OrmRegistrarContextKey] = ormRegistrars; }); })); }
/// <summary> /// 初始化SignalR框架 /// </summary> public static IAppBuilder UseOsharpSignalR(this IAppBuilder app, IIocBuilder iocBuilder) { iocBuilder.CheckNotNull("iocBuilder"); IFrameworkInitializer initializer = new FrameworkInitializer(); initializer.Initialize(iocBuilder); return(app); }
public static IIocBuilder UseStoveHangfire([NotNull] this IIocBuilder builder, [NotNull] Func <IStoveHangfireConfiguration, IStoveHangfireConfiguration> configureAction) { return(builder.RegisterServices(r => { r.RegisterAssemblyByConvention(typeof(StoveHangfireRegistrationExtensions).GetAssembly()); r.Register(context => configureAction); })); }
public static IIocBuilder UseStoveHangfire([NotNull] this IIocBuilder builder, [NotNull] Func <IStoveHangfireConfiguration, IStoveHangfireConfiguration> configureAction) { return(builder.RegisterServices(r => { r.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly()); r.Register(context => configureAction); })); }
public static void RegisterConfig(this IIocBuilder builder, string file) { if (File.Exists(file)) { var doc = XElement.Load(file); RegisterConfig(builder, doc); } }
/// <summary> /// 初始化Mvc框架 /// </summary> public static IAppBuilder UseOsharpMvc(this IAppBuilder app, IServiceCollection services, IIocBuilder iocBuilder) { services.CheckNotNull("services"); iocBuilder.CheckNotNull("iocBuilder"); IFrameworkInitializer initializer = new FrameworkInitializer(); initializer.Initialize(services, iocBuilder); return app; }
/// <summary> /// Automaticaly find handler. /// </summary> public static void InitBuilder() { _builder = CreateTypeInstance <IIocBuilder>( FindAssignable <IIocBuilder>( new string[] { "RollingOutTools.SimpleIoc.OnAutofac" } ) ); }
public static IIocBuilder UseStoveDapper(this IIocBuilder builder) { builder.RegisterServices(r => r.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly())); AutoRegisterRepositories(builder); return(builder); }
/// <summary> /// Uses the stove database context seed migration strategy. /// </summary> /// <param name="builder">The builder.</param> /// <param name="configurationAction">The configuration action.</param> /// <returns></returns> public static IIocBuilder UseStoveDbContextSeedMigrationStrategy(this IIocBuilder builder, Func <IStoveMigrationConfiguration, IStoveMigrationConfiguration> configurationAction) { return(builder.RegisterServices(r => { r.Register(ctx => configurationAction); r.Register <IMigrationStrategy, DbContextSeedMigrationStrategy>(); })); }
public static AppSetupBase RegisterAndGetAppSetup <TAppSetup>(this IIocBuilder builder, Action <IIocBuilder> registerAction = null) where TAppSetup : AppSetupBase { builder.RegisterSetup <TAppSetup>(); registerAction?.Invoke(builder); var ioc = builder.Build(); return(ioc.Resolve <AppSetupBase>()); }
public static IIocBuilder UseStoveRabbitMQ( [NotNull] this IIocBuilder builder, [NotNull] Func <IStoveRabbitMQConfiguration, IStoveRabbitMQConfiguration> rabbitMQConfigurer, Action <IRabbitMqHost, IRabbitMqBusFactoryConfigurator, IComponentContext> consumerConfigurer ) { Check.NotNull(rabbitMQConfigurer, nameof(rabbitMQConfigurer)); Check.NotNull(consumerConfigurer, nameof(consumerConfigurer)); builder .RegisterServices(r => { r.RegisterAssemblyByConvention(typeof(StoveRabbitMQRegistrationExtensions).GetAssembly()); r.Register <IStoveRabbitMQConfiguration, StoveRabbitMQConfiguration>(Lifetime.Singleton); r.Register <IMessageBus, StoveRabbitMQMessageBus>(); r.Register(ctx => rabbitMQConfigurer); }); builder.RegisterServices(r => r.UseBuilder(cb => { cb.Register(ctx => { var configuration = ctx.Resolve <IStoveRabbitMQConfiguration>(); IBusControl busControl = Bus.Factory.CreateUsingRabbitMq(cfg => { IRabbitMqHost host = cfg.Host(new Uri(configuration.HostAddress), h => { h.Username(configuration.Username); h.Password(configuration.Password); }); if (configuration.UseRetryMechanism) { cfg.UseRetry(rtryConf => { rtryConf.Immediate(configuration.MaxRetryCount); }); } if (configuration.PrefetchCount.HasValue) { cfg.PrefetchCount = (ushort)configuration.PrefetchCount; } if (configuration.ConcurrencyLimit.HasValue) { cfg.UseConcurrencyLimit(configuration.ConcurrencyLimit.Value); } consumerConfigurer(host, cfg, ctx); }); return(busControl); }).SingleInstance() .As <IBusControl>() .As <IBus>(); })); return(builder); }
/// <summary> /// 开始执行框架初始化 /// </summary> /// <param name="iocBuilder">依赖注入构建器</param> public void Initialize(IIocBuilder iocBuilder) { iocBuilder.CheckNotNull("iocBuilder"); OSharpConfig config = OSharpConfig.Instance; //依赖注入初始化 IServiceProvider provider = iocBuilder.Build(); //对象映射功能初始化 IMappersBuilder mappersBuilder = provider.GetService <IMappersBuilder>(); IMapper mapper = provider.GetService <IMapper>(); if (!_mapperInitialized && mapper != null) { if (mappersBuilder != null) { IEnumerable <IMapTuple> mapTuples = provider.GetServices <IMapTuple>(); mappersBuilder.Build(mapTuples); } MapperExtensions.SetMaper(mapper); _mapperInitialized = true; } //日志功能初始化 IBasicLoggingInitializer loggingInitializer = provider.GetService <IBasicLoggingInitializer>(); if (!_basicLoggingInitialized && loggingInitializer != null) { loggingInitializer.Initialize(config.LoggingConfig); _basicLoggingInitialized = true; } //数据库初始化 IDatabaseInitializer databaseInitializer = provider.GetService <IDatabaseInitializer>(); if (!_databaseInitialized && databaseInitializer != null) { databaseInitializer.Initialize(config.DataConfig); _databaseInitialized = true; } //实体信息初始化 IEntityInfoHandler entityInfoHandler = provider.GetService <IEntityInfoHandler>(); if (!_entityInfoInitialized && entityInfoHandler != null) { entityInfoHandler.Initialize(); _entityInfoInitialized = true; } //功能信息初始化 IFunctionHandler functionHandler = provider.GetService <IFunctionHandler>(); if (functionHandler != null) { functionHandler.Initialize(); } }
public void Load(IIocBuilder builder) { builder.RegisterType<IScheduleTimer, ElapseScheduleTimer>(LifeTimeScope.Singleton); builder.RegisterType<IScheduleManager, DefaultScheduleManager>(LifeTimeScope.Singleton); builder.RegisterType<IScheduleTrigger, TimingTrigger>(name: "TimingTrigger"); builder.RegisterType<IOperation, NullOperation>(name: "NullOperation"); builder.RegisterType<IAppEventHandler, ScheduleAppEventHandler>(); }
public void Load(IIocBuilder builder) { builder.RegisterType<IAppEventHandler, OracleBLToolkitDataEventHandler>(name: "BLToolkitDataEventHandler"); builder.RegisterType<IDbProvider, OracleDbProvider>(); builder.RegisterType<ISqlFileExecutor, SqlFileExecutor>(); builder.RegisterFactory<IDataContext, DataContextFactory>(); builder.RegisterGeneric(typeof(IRepository<>), typeof(DataContextRepository<>)); }
protected override void BuildeIOC(IIocBuilder builder) { base.BuildeIOC(builder); if (builder is IOC.IIocBuilderForApi) { ((IOC.IIocBuilderForApi)builder).RegisterApiControllers(Config.Current.AssembiesToScan.ToArray()); } }
public static IIocBuilder UseRepositoryRegistrarInAssembly([NotNull] this IIocBuilder builder, [NotNull] Assembly assembly) { Check.NotNull(assembly, nameof(assembly)); List <Type> dbContextTypes = typeof(StoveDbContext).AssignedTypesInAssembly(assembly).ToList(); dbContextTypes.ForEach(type => EfRepositoryRegistrar.RegisterRepositories(type, builder)); return(builder); }
/// <summary> /// 初始化Mvc框架 /// </summary> public static IAppBuilder UseOsharpMvc(this IAppBuilder app, IIocBuilder iocBuilder) { iocBuilder.CheckNotNull("iocBuilder"); ModelBinders.Binders.Add(typeof(string), new StringTrimModelBinder()); IFrameworkInitializer initializer = new FrameworkInitializer(); initializer.Initialize(iocBuilder); return app; }
public void Load(IIocBuilder builder) { builder.RegisterType<IJsonSerializer, JsonNetSerializer>( getConstructorParameters: (ctx) => { Dictionary<string, object> paras = new Dictionary<string, object>(); paras.Add("preserveReferencesHandling", PreserveReferencesHandling.None); return paras; }); }
public void Load(IIocBuilder builder) { builder.RegisterType<Core.Template.ITemplateEngine, Core.Template.DefaultTemplateEngine>(name: "DefaultTemplateEngine"); builder.RegisterType<Core.Template.ITemplateGenerator, RazorContentTemplateGenerator>(name: "RazorContentTemplateGenerator"); builder.RegisterType<Core.Template.ITemplateProvider, Core.Template.FileTemplateProvider>(name: "FileTemplateProvider", getConstructorParameters: (ctx) => { Dictionary<string, object> paras = new Dictionary<string, object>(); paras.Add("root", "~/Templates"); return paras; }); }
/// <summary> /// 开始执行框架初始化 /// </summary> /// <param name="iocBuilder">依赖注入构建器</param> public void Initialize(IIocBuilder iocBuilder) { iocBuilder.CheckNotNull("iocBuilder"); OSharpConfig config = OSharpConfig.Instance; //依赖注入初始化 IServiceProvider provider = iocBuilder.Build(); //对象映射功能初始化 IMappersBuilder mappersBuilder = provider.GetService<IMappersBuilder>(); IMapper mapper = provider.GetService<IMapper>(); if (!_mapperInitialized && mapper != null) { if (mappersBuilder != null) { IEnumerable<IMapTuple> mapTuples = provider.GetServices<IMapTuple>(); mappersBuilder.Build(mapTuples); } MapperExtensions.SetMaper(mapper); _mapperInitialized = true; } //日志功能初始化 IBasicLoggingInitializer loggingInitializer = provider.GetService<IBasicLoggingInitializer>(); if (!_basicLoggingInitialized && loggingInitializer != null) { loggingInitializer.Initialize(config.LoggingConfig); _basicLoggingInitialized = true; } //数据库初始化 IDatabaseInitializer databaseInitializer = provider.GetService<IDatabaseInitializer>(); if (!_databaseInitialized && databaseInitializer != null) { databaseInitializer.Initialize(config.DataConfig); _databaseInitialized = true; } //实体信息初始化 IEntityInfoHandler entityInfoHandler = provider.GetService<IEntityInfoHandler>(); if (!_entityInfoInitialized && entityInfoHandler != null) { entityInfoHandler.Initialize(); _entityInfoInitialized = true; } //功能信息初始化 IFunctionHandler functionHandler = provider.GetService<IFunctionHandler>(); if (functionHandler != null) { functionHandler.Initialize(); } }
public void Register(IIocBuilder builder, Type type) { if (!type.IsAbstract && type.IsClass && typeof(DbContext).IsAssignableFrom(type)) { var props = type.GetProperties().Where(o => o.PropertyType.IsGenericType && o.PropertyType.GetGenericTypeDefinition().Equals(typeof(DbSet<>))); foreach (var prop in props) { var entityType = prop.PropertyType.GetGenericArguments()[0]; DbContextConfig.EentityTypeToDbContextType.Add(entityType, type); } } }
protected override void BuildeIOC(IIocBuilder builder) { base.BuildeIOC(builder); DirectoryInfo dir = new DirectoryInfo(Server.MapPath("~/Modules")); var files = dir.GetFiles("ioc.config", true); if (files != null && files.Count() > 0) { foreach (var f in files) { builder.RegisterConfig(f.FullName); } } }
/// <summary> /// 开始执行框架初始化 /// </summary> /// <param name="services">服务映射集合</param> /// <param name="iocBuilder">依赖注入构建器</param> public void Initialize(IServiceCollection services, IIocBuilder iocBuilder) { services.CheckNotNull("services"); iocBuilder.CheckNotNull("iocBuilder"); OSharpConfig config = OSharpConfig.Instance; //使用副本进行初始化,防止不同平台间的相互污染 IServiceCollection newServices = services.Clone(); //依赖注入初始化 IServiceProvider provider = iocBuilder.Build(newServices); //日志功能初始化 IBasicLoggingInitializer loggingInitializer = provider.GetService<IBasicLoggingInitializer>(); if (!_basicLoggingInitialized && loggingInitializer != null) { loggingInitializer.Initialize(config.LoggingConfig); _basicLoggingInitialized = true; } //数据库初始化 IDatabaseInitializer databaseInitializer = provider.GetService<IDatabaseInitializer>(); if (!_databaseInitialized) { if (databaseInitializer == null) { throw new InvalidOperationException(Resources.FrameworkInitializerBase_DatabaseInitializeIsNull); } databaseInitializer.Initialize(config.DataConfig); _databaseInitialized = true; } //实体信息初始化 if (!_entityInfoInitialized) { IEntityInfoHandler entityInfoHandler = provider.GetService<IEntityInfoHandler>(); if (entityInfoHandler == null) { throw new InvalidOperationException(Resources.FrameworkInitializerBase_EntityInfoHandlerIsNull); } entityInfoHandler.Initialize(); _entityInfoInitialized = true; } //功能信息初始化 IFunctionHandler functionHandler = provider.GetService<IFunctionHandler>(); if (functionHandler == null) { throw new InvalidOperationException(Resources.FrameworkInitializerBase_FunctionHandlerIsNull); } functionHandler.Initialize(); }
public void Load(IIocBuilder builder) { //builder.RegisterType<Core.Configurations.IConfigurationProvider, Configurations.AreaConfigurationProvider>(); builder.RegisterType<Core.Localization.ILocalizer, Localization.JsonLocalizer>(LifeTimeScope.Singleton, autoWire: true, getConstructorParameters: (ctx) => { Dictionary<string, object> paras = new Dictionary<string, object>(); paras.Add("paths", "Localization, Areas/*/Localization"); return paras; }); builder.RegisterType<IAppEventHandler, WebMvcAppEventHandler>(); }
public void Register(IIocBuilder builder, Type type) { if (!type.IsAbstract && type.IsClass) { var itypes = type.GetInterfaces(); if (itypes != null && itypes.Length > 0) { var itype = type.GetInterfaces()[0]; if (itype.IsGenericType && itype.GetGenericTypeDefinition().Equals(typeof(IMessageMapper<>))) { builder.RegisterType(itype, type, LifeTimeScope.Transient, type.FullName); } } } }
public void Register(IIocBuilder builder, Type type) { var docAttr = type.GetCustomAttribute<DocumentAttribute>(true); if (docAttr != null) { if (string.IsNullOrEmpty(docAttr.TypeName)) docAttr.TypeName = type.Name; if (docAttr.ObjectType == null) docAttr.ObjectType = type; if (docAttr.DocumentBuilder == null) docAttr.DocumentBuilder = typeof(AttributeDocumentBuilder); if (docAttr.IndexPathBuilder == null) docAttr.IndexPathBuilder = typeof(LocaleDateTimeIndexPathBuilder); if (docAttr.FacetFieldNameProvider == null) docAttr.FacetFieldNameProvider = typeof(LocaleFacetFieldNameProvider); AttributedTypes.SearchTypes.Add(type.Name, docAttr); } }
public void Load(IIocBuilder builder) { builder.RegisterType<Core.FileSystem.IFileSystemProvider, Core.FileSystem.LocalFileProvider>(name: "LocalFileSystem"); builder.RegisterType<Core.Caching.ICacheManager, Caching.WebCacheManager>(); builder.RegisterType<Core.Security.IPasswordEncryptionProvider, Core.Security.HashEncryptionProvider>(LifeTimeScope.Singleton); builder.RegisterType<Core.Generators.IRandomTextGenerator, Core.Generators.RNGRandomTextGenerator>(LifeTimeScope.Singleton); builder.RegisterType<Core.Generators.IIdGenerator, Core.Generators.TicksIdGenerator>(LifeTimeScope.Singleton); #if DEBUG builder.RegisterType<Core.Data.ITransactionManager, Core.Data.NullTransactionManager>(); #else builder.RegisterType<Core.Data.ITransactionManager, Core.Data.DefaultTransactionManager>(); #endif builder.RegisterType<Security.ICaptchaGenerator, Security.DefaultCaptchaGenerator>(LifeTimeScope.Singleton); builder.RegisterType<Core.Serialization.IJsonSerializer, Serialization.JavascriptConvert>(LifeTimeScope.Singleton); builder.RegisterType<IObjectProvider<IEnumerable<DAF.Core.Localization.LocalizationInfo>>, WebJsonFileObjectProvider<IEnumerable<DAF.Core.Localization.LocalizationInfo>>>(LifeTimeScope.Singleton, getConstructorParameters: (ctx) => { Dictionary<string, object> paras = new Dictionary<string, object>(); paras.Add("jsonFile", "~/App_Data/languages.js"); return paras; }); builder.RegisterType<IObjectProvider<IEnumerable<Menu.MenuGroup>>, WebJsonFileObjectProvider<IEnumerable<Menu.MenuGroup>>>(LifeTimeScope.Singleton, getConstructorParameters: (ctx) => { Dictionary<string, object> paras = new Dictionary<string, object>(); paras.Add("jsonFile", "~/App_Data/menu.js"); return paras; }); builder.RegisterType<Core.Localization.ILocalizer, Localization.JsonLocalizer>(LifeTimeScope.Singleton, autoWire: true, getConstructorParameters: (ctx) => { Dictionary<string, object> paras = new Dictionary<string, object>(); paras.Add("paths", "Localization"); return paras; }); //builder.RegisterType<Core.Logging.ILogger, Core.Logging.NullLogger>(LiftTimeScope.Singleton, autoWire: true); builder.RegisterType<IWebAppEventHandler, IOC.IocWebAppEventHandler>(LifeTimeScope.Singleton); }
public void Load(IIocBuilder builder) { builder.RegisterType<ModelMetadataProvider, DataAnnotationsModelMetadataProvider2>(LifeTimeScope.Singleton); builder.RegisterType<IAppEventHandler, WebApiAppEventHandler>(); }
public void Load(IIocBuilder builder) { builder.RegisterGeneric(typeof(IRepositoryEventHandler<>), typeof(SearchRepositoryEventHandler<>)); builder.RegisterType<IAppEventHandler, SearchAppEventHandler>(); }
/// <summary> /// 开始执行框架初始化 /// </summary> /// <param name="iocBuilder">依赖注入构建器</param> public void Initialize(IIocBuilder iocBuilder) { iocBuilder.CheckNotNull("iocBuilder"); OSharpConfig config = OSharpConfig.Instance; //依赖注入初始化 IServiceProvider provider = iocBuilder.Build(); //对象映射功能初始化 IMappersBuilder mappersBuilder = provider.GetService<IMappersBuilder>(); IMapper mapper = provider.GetService<IMapper>(); if (!_mapperInitialized) { if (mappersBuilder != null) { IEnumerable<IMapTuple> mapTuples = provider.GetServices<IMapTuple>(); mappersBuilder.Build(mapTuples); } if (mapper != null) { MapperExtensions.SetMaper(mapper); } _mapperInitialized = true; } //日志功能初始化 IBasicLoggingInitializer loggingInitializer = provider.GetService<IBasicLoggingInitializer>(); if (!_basicLoggingInitialized && loggingInitializer != null) { loggingInitializer.Initialize(config.LoggingConfig); _basicLoggingInitialized = true; } //数据库初始化 IDatabaseInitializer databaseInitializer = provider.GetService<IDatabaseInitializer>(); if (!_databaseInitialized) { if (databaseInitializer == null) { throw new InvalidOperationException(Resources.FrameworkInitializer_DatabaseInitializeIsNull); } databaseInitializer.Initialize(config.DataConfig); _databaseInitialized = true; } //实体信息初始化 if (!_entityInfoInitialized) { IEntityInfoHandler entityInfoHandler = provider.GetService<IEntityInfoHandler>(); if (entityInfoHandler == null) { throw new InvalidOperationException(Resources.FrameworkInitializer_EntityInfoHandlerIsNull); } entityInfoHandler.Initialize(); _entityInfoInitialized = true; } //功能信息初始化 IFunctionHandler functionHandler = provider.GetService<IFunctionHandler>(); if (functionHandler == null) { throw new InvalidOperationException(Resources.FrameworkInitializer_FunctionHandlerIsNull); } functionHandler.Initialize(); }
public void Load(IIocBuilder builder) { builder.RegisterType<IMessageSender, NBusSender>(LifeTimeScope.Singleton); }
public static void RegisterBuilder(IIocBuilder builder) { IocInstance.builder = builder; }
public void Load(IIocBuilder builder) { builder.RegisterType<ISqlFileExecutor, SqlFileExecutor>(); builder.RegisterFactory<MongoDatabase, DatabaseFactory>(); builder.RegisterGeneric(typeof(IRepository<>), typeof(CollectionRepository<>)); }
protected virtual void BuildeIOC(IIocBuilder builder) { var file = ("~/Configurations/" + iocConfigFile).GetPhysicalPath(); builder.RegisterConfig(file); }