public void Register(ContainerBuilder builder, ITypeFinder typeFinder, HylWebConfig config) { builder.Register(db => new DbConnectionFactory(config).CreateDbConnection()).As <IDbConnection>(); builder.RegisterType <DbQuery>().As <IDbQuery>(); builder.RegisterGeneric(typeof(Repository <>)).As(typeof(IRepository <>)); //builder.RegisterGeneric(typeof(NhibernateRepository<>)).Named<string>("NH").As(typeof(IRepository<>)); }
/// <summary> /// Register dependencies /// </summary> /// <param name="config">Config</param> protected virtual void RegisterDependencies(HylWebConfig config) { var builder = new ContainerBuilder(); ////dependencies var typeFinder = new WebAppTypeFinder(); builder.RegisterInstance(config).As <HylWebConfig>().SingleInstance(); builder.RegisterInstance(this).As <IEngine>().SingleInstance(); builder.RegisterInstance(typeFinder).As <ITypeFinder>().SingleInstance(); //register dependencies provided by other assemblies var drTypes = typeFinder.FindClassesOfType <IDependencyRegistrar>(); var drInstances = new List <IDependencyRegistrar>(); foreach (var drType in drTypes) { drInstances.Add((IDependencyRegistrar)Activator.CreateInstance(drType)); } //sort drInstances = drInstances.AsQueryable().OrderBy(t => t.Order).ToList(); foreach (var dependencyRegistrar in drInstances) { dependencyRegistrar.Register(builder, typeFinder, config); } var container = builder.Build(); this._containerManager = new ContainerManager(container); //set dependency resolver DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); }
public AuthController(HylWebConfig hylWebConfig) { _hylWebConfig = hylWebConfig; if (!string.IsNullOrEmpty(_hylWebConfig.GkUrl)) { _hylWebConfig.GkUrl = _hylWebConfig.GkUrl.Trim('/'); } }
public void Register(ContainerBuilder builder, ITypeFinder typeFinder, HylWebConfig config) { //register all services that inherit interface IServicesDependency var baseType = typeof(IServicesDependency); //var assembly = BuildManager.GetReferencedAssemblies().Cast<Assembly>().ToList(); var assembly = AppDomain.CurrentDomain.GetAssemblies().ToList(); builder.RegisterAssemblyTypes(assembly.ToArray()).Where(t => baseType.IsAssignableFrom(t) && t != baseType).AsImplementedInterfaces().InstancePerLifetimeScope(); }
public void Register(ContainerBuilder builder, ITypeFinder typeFinder, HylWebConfig config) { //cache managers builder.RegisterType <PerRequestCacheManager>().As <ICacheManager>().Named <ICacheManager>("hyl_cache_per_request").InstancePerLifetimeScope(); if (config.RedisCachingEnabled) { builder.Register(wp => new RedisConnectionWrapper(config)).As <IRedisConnectionWrapper>().SingleInstance(); builder.RegisterType <RedisCacheManager>().As <ICacheManager>().InstancePerLifetimeScope(); } else { builder.RegisterType <MemoryCacheManager>().As <ICacheManager>().SingleInstance(); } builder.RegisterGeneric(typeof(DefaultLog <>)).WithParameter(new NamedParameter("config", config)).As(typeof(ILogs <>)); builder.RegisterType <QuartzManager>().As <IJobManager>(); // Schedule builder.Register(x => new StdSchedulerFactory().GetScheduler()).As <IScheduler>(); builder.RegisterAssemblyTypes(Assembly.GetExecutingAssembly()).Where(x => typeof(IJob).IsAssignableFrom(x)); }
public DbConnectionFactory(HylWebConfig config) { connectionString = config.ConnectionString; databaseType = config.DbType; }
public RedisConnectionWrapper(HylWebConfig config) { this._config = config; this._connectionString = new Lazy <string>(GetConnectionString); this._redisLockFactory = CreateRedisLockFactory(); }
public DefaultLog(HylWebConfig config) { //DefaultLogHelper.InitDbInfo(config); log = LogManager.GetLogger(typeof(T)); }
public virtual void Register(ContainerBuilder builder, ITypeFinder typeFinder, HylWebConfig config) { // MVC - Register your MVC controllers. builder.RegisterControllers(typeof(MvcApplication).Assembly); // MVC - OPTIONAL: Register model binders that require DI. builder.RegisterModelBinders(typeof(MvcApplication).Assembly); builder.RegisterModelBinderProvider(); // MVC - OPTIONAL: Enable property injection into action filters. builder.RegisterFilterProvider(); //// MVC - OPTIONAL: Register web abstractions like HttpContextBase. //builder.RegisterModule<AutofacWebTypesModule>(); //下面手动注册 //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(); }
/// <summary> /// Initialize components and plugins in the nop environment. /// </summary> /// <param name="config">Config</param> /// public void Initialize(HylWebConfig config) { //register dependencies RegisterDependencies(config); }
protected override bool AuthorizeCore(HttpContextBase httpContext) { HylWebConfig _cfg = EngineContext.Current.Resolve <HylWebConfig>(); return(_cfg.IntegrateGuanKong ? (int)WebWorkContext.AuthorityId <= 100 : true); }