public static void Register(HttpConfiguration config) { // Web API configuration and services // Configure Web API to use only bearer token authentication. //config.SuppressDefaultHostAuthentication(); //config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType)); var containerBuilder = new ContainerBuilder(); containerBuilder.RegisterApiControllers(typeof(MobileAppRuntimeTableConfiguration).Assembly); containerBuilder.RegisterApiControllers(typeof(WebApiConfig).Assembly); containerBuilder.RegisterType<FSEntityRepository>().As<IEntityRepository>().SingleInstance(); containerBuilder.RegisterType<DatabaseAutomaticMigrationInitializer>().As<IDatabaseInitializer<MobileServiceContext>>().SingleInstance(); config.DependencyResolver = new AutofacWebApiDependencyResolver(containerBuilder.Build()); var mobileAppTableConfig = new MobileAppRuntimeTableConfiguration() // you can change the default connection string name here .UseConnectionStringName("MS_TableConnectionString") .ConfigureModelBuilder(builder => builder.Conventions.Remove<PluralizingTableNameConvention>()); new MobileAppConfiguration() // from the Home package .MapApiControllers() .AddMobileAppHomeController() // from the Tables package .AddTables(mobileAppTableConfig).ApplyTo(config); // Web API routes config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute(name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional }); }
public static void Register(IAppBuilder app, HttpConfiguration config) { var aspNetIdentityAssembly = typeof(IMarkerAspNetIdentityInterface).Assembly; var cornhouseCoreAssembly = typeof (IMarkerCornhouseCoreInterface).Assembly; var executingAssembly = Assembly.GetExecutingAssembly(); var builder = new ContainerBuilder(); builder.Register(c => InitializeRavenDb.Initialize(aspNetIdentityAssembly)).As<IDocumentStore>().InstancePerLifetimeScope(); builder.Register(c => c.Resolve<IDocumentStore>().OpenAsyncSession()).As<IAsyncDocumentSession>().InstancePerRequest(); builder.Register(c => HttpContext.Current.User).InstancePerRequest(); builder.RegisterType<ApplicationUserManager>().AsSelf().InstancePerRequest(); builder.RegisterType<ApplicationRoleManager>().AsSelf().InstancePerRequest(); builder.RegisterType<RavenUserStore>().AsSelf().InstancePerRequest(); builder.RegisterType<RavenRoleStore>().AsSelf().InstancePerRequest(); builder.Register(c => HttpContext.Current.GetOwinContext().Authentication).InstancePerRequest(); builder.Register(c => app.GetDataProtectionProvider()).InstancePerRequest(); builder.RegisterApiControllers(executingAssembly); builder.RegisterApiControllers(aspNetIdentityAssembly); builder.RegisterAssemblyTypes(executingAssembly).AsImplementedInterfaces().InstancePerRequest(); builder.RegisterAssemblyTypes(aspNetIdentityAssembly).AsImplementedInterfaces().InstancePerRequest(); builder.RegisterAssemblyTypes(cornhouseCoreAssembly).AsImplementedInterfaces().InstancePerRequest(); var container = builder.Build(); config.DependencyResolver = new AutofacWebApiDependencyResolver(container); app.UseAutofacMiddleware(container); app.UseAutofacWebApi(config); }
public static void Configure() { var builder = new ContainerBuilder(); builder.RegisterType<EFStoredGrantManager>().As<IStoredGrantManager>(); builder.RegisterType<EFAuthorizationServerConfiguration>().As<IAuthorizationServerConfiguration>(); builder.RegisterType<EFAuthorizationServerAdministration>().As<IAuthorizationServerAdministration>(); builder.RegisterType<EFAuthorizationServerAdministratorsService>() .As<IAuthorizationServerAdministratorsService>(); //builder.RegisterType<Thinktecture.Samples.AssertionGrantValidator>().As<IAssertionGrantValidation>(); builder.RegisterType<DefaultAssertionGrantValidator>().As<IAssertionGrantValidation>(); builder.RegisterType<AuthorizationServerContext>().InstancePerHttpRequest(); builder.Register(x => CreateCredentialAuthorizationResource()).As<ICredentialAuthorizationResource>(); builder.RegisterType<WSTrustResourceOwnerCredentialValidation>().As<IResourceOwnerCredentialValidation>(); builder.RegisterModule(new AutofacWebTypesModule()); builder.RegisterControllers(typeof (AuthorizeController).Assembly); builder.RegisterControllers(typeof (AutofacConfig).Assembly); builder.RegisterApiControllers(typeof (TokenController).Assembly); builder.RegisterApiControllers(typeof (AutofacConfig).Assembly); var container = builder.Build(); // MVC DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); // Web API var resolver = new AutofacWebApiDependencyResolver(container); GlobalConfiguration.Configuration.DependencyResolver = resolver; }
public static void Configure() { var builder = new ContainerBuilder(); builder.RegisterType<EFStoredGrantManager>().As<IStoredGrantManager>(); builder.RegisterType<DefaultAssertionGrantValidator>().As<IAssertionGrantValidation>(); builder.RegisterType<EFAuthorizationServerConfiguration>().As<IAuthorizationServerConfiguration>(); builder.RegisterType<EFAuthorizationServerAdministration>().As<IAuthorizationServerAdministration>(); builder.RegisterType<EFAuthorizationServerAdministratorsService>().As<IAuthorizationServerAdministratorsService>(); builder.RegisterType<AuthorizationServerContext>().InstancePerHttpRequest(); builder.RegisterType<TokenService>().AsSelf(); builder.RegisterModule(new ConfigurationSettingsReader("autofac")); builder.RegisterControllers(typeof(AuthorizeController).Assembly); builder.RegisterControllers(typeof(AutofacConfig).Assembly); builder.RegisterApiControllers(typeof(TokenController).Assembly); builder.RegisterApiControllers(typeof(AutofacConfig).Assembly); var container = builder.Build(); // MVC DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); // Web API var resolver = new AutofacWebApiDependencyResolver(container); GlobalConfiguration.Configuration.DependencyResolver = resolver; }
/// <summary> /// The on application started. /// </summary> /// <param name="sender"> /// The sender. /// </param> /// <param name="e"> /// The e. /// </param> protected override void OnApplicationStarted(object sender, EventArgs e) { base.OnApplicationStarted(sender, e); AreaRegistration.RegisterAllAreas(); this.RegisterRouter(); var builder = new ContainerBuilder(); // Register umbraco context, mvc controllers and api controllers builder.Register(c => UmbracoContext.Current).AsSelf(); builder.RegisterControllers(Assembly.GetExecutingAssembly()); builder.RegisterApiControllers(typeof(UmbracoApplication).Assembly); // Custom controller builder.RegisterApiControllers(typeof(HomeController).Assembly); // Register application specific types this.RegisterTypes(builder); IoC.Container = builder.Build(); var container = IoC.Container; var resolver = new AutofacWebApiDependencyResolver(container); GlobalConfiguration.Configuration.DependencyResolver = resolver; DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); }
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); GlobalConfiguration.Configure(WebApiConfig.Register); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); //Autofac Configuration var config = GlobalConfiguration.Configuration; var builder = new Autofac.ContainerBuilder(); builder.RegisterApiControllers(Assembly.GetExecutingAssembly()); //builder.RegisterControllers(typeof(MvcApplication).Assembly).PropertiesAutowired(); builder.RegisterModule(new ServiceModule()); builder.RegisterModule(new EFModule()); //var container = builder.Build(); var container = builder.Build(); config.DependencyResolver = new AutofacWebApiDependencyResolver(container); //config.DependencyResolver = new au //DependencyResolver.SetResolver(new AutofacWebApiDependencyResolver(container)); }
public static void Run() { var builder = new Autofac.ContainerBuilder(); var config = GlobalConfiguration.Configuration; var service = builder.RegisterType<FormularioService>() .As<IFormularioService>(); var factory = builder.RegisterType<DatabaseFactoryFormulario>() .As<IDatabaseFactory>(); var unit = builder.RegisterType<UnitOfWorkGeneric>() .As<IUnitOfWOrkGeneric<IDatabaseFactory>>(); builder.RegisterApiControllers(Assembly.GetExecutingAssembly()); builder.RegisterWebApiFilterProvider(config); builder.RegisterWebApiModelBinderProvider(); service.InstancePerRequest(); factory.InstancePerRequest(); unit.InstancePerRequest(); var container = builder.Build(); config.DependencyResolver = new AutofacWebApiDependencyResolver(container); config.Formatters.Remove(config.Formatters.XmlFormatter); var json = GlobalConfiguration.Configuration.Formatters.JsonFormatter; json.SerializerSettings.Formatting = Newtonsoft.Json.Formatting.Indented; json.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver(); }
/// <summary> /// WebApi的AutoFac配置 /// </summary> /// <param name="projectName">WebApi项目名(命名空间)</param> public static void Init_WebApi(string projectName = "") { //默认项目名称 projectName = string.IsNullOrEmpty(projectName) ? _DefaultApiName : projectName; //构造一个AutoFac的builder容器 ContainerBuilder builder = new Autofac.ContainerBuilder(); var configuration = GlobalConfiguration.Configuration; builder.RegisterWebApiFilterProvider(configuration); Assembly apicontrollerAss = Assembly.Load(projectName); builder.RegisterApiControllers(apicontrollerAss); Assembly repositoryAss = Assembly.Load("Services"); //加载数据层程序集。 Type[] rtypes = repositoryAss.GetTypes(); builder.RegisterTypes(rtypes) .AsImplementedInterfaces().InstancePerApiRequest(); //创建AutoFac工作容器 var container = builder.Build(); configuration.DependencyResolver = new AutofacWebApiDependencyResolver(container);//注册api容器 }
/// <summary> /// 注册 /// </summary> public static AutofacWebApiDependencyResolver Register() { ContainerBuilder builder = new Autofac.ContainerBuilder(); // Assembly controllerAss = Assembly.Load(string.Format("{0}.Web", proname)); // builder.RegisterControllers(Assembly.GetExecutingAssembly()); // builder.RegisterApiControllers(Assembly.GetExecutingAssembly()); builder.RegisterApiControllers(Assembly.GetExecutingAssembly()).PropertiesAutowired(); Assembly repositoryAss = Assembly.Load("serviceimpl"); Type[] rtypes = repositoryAss.GetTypes(); builder.RegisterTypes(rtypes) .AsImplementedInterfaces(); // builder.RegisterTypes(typeof(SIC_WebClient)).SingleInstance().PropertiesAutowired(); var container = builder.Build(); // DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); // Set the dependency resolver for Web API. return(new AutofacWebApiDependencyResolver(container)); //GlobalConfiguration.Configuration.DependencyResolver = webApiResolver; }
public static void Register(HttpConfiguration config) { // Web API configuration and services // Web API routes config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute("DefaultApi", "api/{controller}/{id}", new {id = RouteParameter.Optional} ); var builder = new ContainerBuilder(); builder.RegisterType<ConsoleLogger>().As<ILogger>(); builder.Register(c => new LoggingActionFilter(c.Resolve<ILogger>())). AsWebApiActionFilterFor<ValuesController>(c => c.Get()) .InstancePerRequest(); var globalConfiguration = GlobalConfiguration.Configuration; builder.RegisterApiControllers(Assembly.GetExecutingAssembly()); builder.RegisterWebApiFilterProvider(config); var container = builder.Build(); config.DependencyResolver = new AutofacWebApiDependencyResolver(container); }
protected void Application_Start() { Database.SetInitializer(new TrainingDbInitializer()); var builder = new ContainerBuilder(); builder.RegisterType<EditableUserRepository>().As<IEditableRepository<User>>(); builder.RegisterType<EditableSysOpRepository>().As<IEditableRepository<SysOp>>(); builder.RegisterType<CompanyRepository>().As<IEditableRepository<Company>>(); builder.RegisterType<CommentRepository>().As<IEditableRepository<Comment>>(); builder.RegisterType<CourseRepository>().As<IEditableRepository<Course>>(); builder.RegisterType<EmployeeCourseRepository>().As<IEditableRepository<EmployeeCourse>>(); builder.RegisterType<DivisionRepository>().As<IEditableRepository<Division>>(); builder.RegisterType<EmployeeRepository>().As<IEditableRepository<Employee>>(); builder.RegisterType<EmployeeCourseStatusRepository>().As<IEditableRepository<EmployeeCourseStatus>>(); builder.RegisterType<InstructorRepository>().As<IEditableRepository<Instructor>>(); builder.RegisterType<RaceRepository>().As<IEditableRepository<Race>>(); builder.RegisterType<RegionRepository>().As<IEditableRepository<Region>>(); builder.RegisterType<ResultRepository>().As<IEditableRepository<Result>>(); builder.RegisterType<EmployeeDocumentRepository>().As<IEditableRepository<EmployeeDocument>>(); builder.RegisterType<TrainingScheduleRepository>().As<IEditableRepository<TrainingSchedule>>(); builder.RegisterType<EmployeeTrainingScheduleRepository>().As<IEditableRepository<EmployeeTrainingSchedule>>(); builder.RegisterType<TrainingManualRepository>().As<IEditableRepository<TrainingManual>>(); builder.RegisterType<CompanyBudgetRepository>().As<IEditableRepository<CompanyBudget>>(); builder.RegisterType<DivisionBudgetRepository>().As<IEditableRepository<DivisionBudget>>(); builder.RegisterApiControllers(Assembly.GetExecutingAssembly()); var container = builder.Build(); DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); GlobalConfiguration.Configuration.DependencyResolver = new AutofacWebApiDependencyResolver(container); GlobalConfiguration.Configure(WebApiConfig.Register); GlobalConfiguration.Configuration.MessageHandlers.Add(new BasicTrainingAuthMessageHandler()); }
public void Configuration(IAppBuilder app) { var builder = new ContainerBuilder(); builder.RegisterControllers(Assembly.GetExecutingAssembly()); var config = GlobalConfiguration.Configuration; var assemblies = Directory.GetFiles(AppDomain.CurrentDomain.RelativeSearchPath, "*.dll").Select(Assembly.LoadFrom).ToArray(); //注册所有实现了 IDependency 接口的类型 var baseType = typeof(IDependency); builder.RegisterAssemblyTypes(assemblies) .Where(type => baseType.IsAssignableFrom(type) && !type.IsAbstract) .AsSelf().AsImplementedInterfaces() .InstancePerLifetimeScope(); //注册MVC类型 // builder.RegisterControllers(assemblies).PropertiesAutowired(); //注册Api类型 builder.RegisterApiControllers(assemblies); //builder.RegisterFilterProvider(); builder.RegisterWebApiFilterProvider(config); var container = builder.Build(); //注册api容器需要使用HttpConfiguration对象 config.DependencyResolver = new AutofacWebApiDependencyResolver(container); //注册解析 DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); }
public static void RegistAll() { var iocBuilder = new Autofac.ContainerBuilder(); iocBuilder.RegisterControllers(Assembly.GetExecutingAssembly()); iocBuilder.RegisterApiControllers(Assembly.GetExecutingAssembly()); //Type baseType = typeof(IH2FBase); var iInterfaces = Assembly.Load("H2F.TEST.Interface"); var implement = Assembly.Load("H2F.TEST.Implement"); iocBuilder.RegisterAssemblyTypes(iInterfaces, implement).AsImplementedInterfaces(); iocBuilder.RegisterType <Student>().As <IPerson>(); iocBuilder.RegisterType <Worker>().Keyed <IPerson>(PersonType.Worker); iocBuilder.RegisterType <Student>().Keyed <IPerson>(PersonType.Student); iocBuilder.RegisterType <Log4net>().As <ILogger>(); var config = GlobalConfiguration.Configuration; iocBuilder.RegisterWebApiFilterProvider(config); IContainer iocContainer = iocBuilder.Build(); config.DependencyResolver = new AutofacWebApiDependencyResolver(iocContainer); System.Web.Mvc.DependencyResolver.SetResolver(new AutofacDependencyResolver(iocContainer)); IocContainerManager.SetContanier(iocContainer); }
protected void Application_Start(object sender, EventArgs e) { System.Web.Http.GlobalConfiguration.Configuration.Routes.MapHttpRoute("htt", "{controller}/{action}"); System.Web.Http.GlobalConfiguration.Configuration.Filters.Add(new HaishanExceptionHandler()); System.Web.Http.GlobalConfiguration.Configuration.Filters.Add(new HaishanActionFilter()); var flagIScoped = typeof(IScoped); var flagITransient = typeof(ITransient); var lstAssembly = System.Web.Compilation.BuildManager.GetReferencedAssemblies().Cast <System.Reflection.Assembly>().ToList(); var lstType = lstAssembly.SelectMany(x => x.GetTypes()).ToList(); var lstIScoped = lstType.Where(x => x != flagIScoped && flagIScoped.IsAssignableFrom(x)).ToArray(); var lstITransient = lstType.Where(x => x != flagITransient && flagITransient.IsAssignableFrom(x)).ToArray(); var builder = new Autofac.ContainerBuilder(); builder.RegisterTypes(lstIScoped).AsSelf().AsImplementedInterfaces().PropertiesAutowired() .InstancePerApiRequest(); builder.RegisterTypes(lstITransient).AsSelf().AsImplementedInterfaces().PropertiesAutowired() .InstancePerDependency(); var controllerAssembly = System.Reflection.Assembly.GetExecutingAssembly(); builder.RegisterApiControllers(controllerAssembly).AsSelf().PropertiesAutowired() .InstancePerDependency(); var resolver = new Autofac.Integration.WebApi.AutofacWebApiDependencyResolver(builder.Build()); System.Web.Http.GlobalConfiguration.Configuration.DependencyResolver = resolver; }
public static void Config(IAppBuilder app, HttpConfiguration config) { var builder = new ContainerBuilder(); //register controllers builder.RegisterApiControllers(Assembly.GetExecutingAssembly()).InstancePerRequest(); builder.RegisterAssemblyTypes(Assembly.GetExecutingAssembly()) //Register ***Services .Where(t => t.Name.EndsWith("Service")) .AsImplementedInterfaces(); //Register Auth classes builder.RegisterType<AppDbContext>().As<DbContext>().InstancePerRequest(); builder.RegisterType<UserStore<ApplicationUser>>().AsImplementedInterfaces().InstancePerRequest(); builder.RegisterType<ApplicationUserManager>().AsSelf().InstancePerRequest(); builder.RegisterType<RoleStore<IdentityRole>>().AsImplementedInterfaces().InstancePerRequest(); builder.RegisterType<ApplicationRoleManager>().AsSelf().InstancePerRequest(); //Register generics builder.RegisterGeneric(typeof(Repository<>)).AsImplementedInterfaces(); // Register dependecy of MailerApiController from Postal dll builder.RegisterType<EmailService>().As<IEmailService>(); var container = builder.Build(); config.DependencyResolver = new AutofacWebApiDependencyResolver(container); //WebAPI app.UseAutofacMiddleware(container); //Register before MVC / WebApi app.UseAutofacWebApi(config); }
private static IContainer RegisterServices(ContainerBuilder builder) { builder.RegisterApiControllers(Assembly.GetExecutingAssembly()); // EF PSMContext builder.RegisterType<PSMContext>() .As<DbContext>() .InstancePerRequest(); builder.RegisterType<DbFactory>() .As<IDbFactory>() .InstancePerRequest(); builder.RegisterType<UnitOfWork>() .As<IUnitOfWork>() .InstancePerRequest(); builder.RegisterGeneric(typeof(EntityBaseRepository<>)) .As(typeof(IEntityBaseRepository<>)) .InstancePerRequest(); Container = builder.Build(); return Container; }
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); WebApiConfig.Register(GlobalConfiguration.Configuration); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); Database.SetInitializer<MusicstoreContext>(null); Database.SetInitializer(new CreateDatabaseIfNotExists<MusicstoreContext>()); Database.SetInitializer(new MigrateDatabaseToLatestVersion<MusicstoreContext, Data.Migrations.Configuration>()); GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore; var builder = new ContainerBuilder(); #region data layer //var dataSettingsManager = new DataSettingsManager(); //var dataProviderSettings = dataSettingsManager.LoadSettings(); #endregion var db = new MusicstoreContext(); builder.RegisterApiControllers(Assembly.GetExecutingAssembly()); //builder.RegisterGeneric(typeof(EfRepository<>)).AsImplementedInterfaces(); builder.Register<IRepository>(c => new EfRepository(db)).InstancePerApiRequest(); //builder.Register<IRepository<Artist>>(c => new EfRepository<Artist>(new MusicstoreContext())).InstancePerApiRequest(); //builder.Register<IRepository<Song>>(c => new EfRepository<Song>(new MusicstoreContext())).InstancePerApiRequest(); var container = builder.Build(); var resolver = new AutofacWebApiDependencyResolver(container); GlobalConfiguration.Configuration.DependencyResolver = resolver; }
public void Configuration(IAppBuilder appBuilder) { var containerBuilder = new ContainerBuilder(); containerBuilder.RegisterApiControllers(typeof(Startup).Assembly).InstancePerRequest(); var storePath = Path.Combine( Path.GetTempPath(), Guid.NewGuid().ToString()); var container = EventFlowOptions.New .UseAutofacContainerBuilder(containerBuilder) .AddEvents(EventFlowTestHelpers.Assembly) .AddCommandHandlers(EventFlowTestHelpers.Assembly) .AddOwinMetadataProviders() .UseFilesEventStore(FilesEventStoreConfiguration.Create(storePath)) .RegisterServices(f => f.Register(r => new DirectoryCleaner(storePath), Lifetime.Singleton)) .CreateContainer(false); container.Resolve<DirectoryCleaner>(); var config = new HttpConfiguration { DependencyResolver = new AutofacWebApiDependencyResolver(container), IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.LocalOnly, }; config.MapHttpAttributeRoutes(); config.Formatters.Remove(config.Formatters.XmlFormatter); config.Services.Add(typeof(IExceptionLogger), new LogProviderExceptionLogger(container.Resolve<ILog>())); appBuilder.UseAutofacMiddleware(container); appBuilder.UseAutofacWebApi(config); appBuilder.UseWebApi(config); }
public void Configuration(IAppBuilder app) { var builder = new ContainerBuilder(); var config = new HttpConfiguration(); // Identity Dependencies builder.RegisterType<ApplicationDbContext>().AsSelf().InstancePerLifetimeScope(); builder.RegisterType<ApplicationUserStore>().As<IUserStore<ApplicationUser>>().InstancePerLifetimeScope(); builder.RegisterType<ApplicationUserManager>().AsSelf().InstancePerLifetimeScope(); builder.RegisterType<ApplicationSignInManager>().AsSelf().InstancePerLifetimeScope(); builder.Register<IAuthenticationManager>(c => HttpContext.Current.GetOwinContext().Authentication); // Web Application Dependencies builder.RegisterType<StoreContext>().AsSelf().InstancePerRequest(); builder.RegisterType<StoreItemService>().AsSelf(); builder.RegisterType<ReceivingItemService>().AsSelf(); // Autofac MVC Boilerplate builder.RegisterModule<AutofacWebTypesModule>(); builder.RegisterFilterProvider(); builder.RegisterControllers(typeof(MvcApplication).Assembly); //Autofac WebAPI2 Boilerplate builder.RegisterApiControllers(typeof(MvcApplication).Assembly); builder.RegisterWebApiFilterProvider(config); var container = builder.Build(); GlobalConfiguration.Configuration.DependencyResolver = new AutofacWebApiDependencyResolver(container); DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); app.UseAutofacMiddleware(container); app.UseAutofacMvc(); app.UseAutofacWebApi(config); ConfigureAuth(app); }
public static void Initialize(Assembly webAssembly, IEnumerable<Assembly> relatedAssemblies) { var builder = new ContainerBuilder(); // register all of autofac modules builder.RegisterAssemblyModules(relatedAssemblies.ToArray()); // register all controllers builder.RegisterControllers(webAssembly); // register all web api controllers builder.RegisterApiControllers(webAssembly); // register all filters builder.RegisterFilterProvider(); // build up the container var container = builder.Build(); // register it to ASP.NET MVC DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); // Create the dependency resolver. var resolver = new AutofacWebApiDependencyResolver(container); // Configure Web API with the dependency resolver. GlobalConfiguration.Configuration.DependencyResolver = resolver; }
public static void Configure() { var builder = new ContainerBuilder(); builder.RegisterApiControllers(typeof(MvcApplication).Assembly).PropertiesAutowired().InstancePerHttpRequest(); builder.RegisterControllers(typeof(MvcApplication).Assembly).PropertiesAutowired().InstancePerHttpRequest(); builder.RegisterType<Logger>().As<ILogger>(); builder.RegisterType<SimpleDataModificator>(); builder.RegisterType<XmlDataModificator>(); builder.RegisterType<Config>(); var config = new Config(new Logger()); switch (config.GetDataSource()) { case DataSourse.DataBase: builder.RegisterType<SimpleDataRepresentator>().As<IDataRepresentator>(); break; case DataSourse.Xml: builder.RegisterType<XmlDataRepresentator>().As<IDataRepresentator>(); break; default: throw new NotImplementedException(); } var container = builder.Build(); DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); GlobalConfiguration.Configuration.DependencyResolver = new AutofacWebApiDependencyResolver(container); }
protected void Application_Start() { var config = GlobalConfiguration.Configuration; config.MapHttpAttributeRoutes(); config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always; config.Filters.Add(new BadRequestExceptionAttribute()); config.Filters.Add(new NotFoundExceptionAttribute()); config.Filters.Add(new AuthAttribute()); config.Filters.Add(new ValidationFilterAttribute()); WebApiConfig.Register(GlobalConfiguration.Configuration); FilterConfig.RegisterFilters(config); var builder = new ContainerBuilder(); builder.RegisterApiControllers(Assembly.GetExecutingAssembly()); builder.RegisterWebApiFilterProvider(config); RegisterHandlers(builder); RegisterContext(builder); var container = builder.Build(); config.DependencyResolver = new AutofacWebApiDependencyResolver(container); FluentValidationModelValidatorProvider.Configure(config); config.EnsureInitialized(); TestsContext.SetInitializer(); ConfigureMappings(); }
public static IContainer ConfigureWebApiContainer() { Configure(); var containerBuilder = new ContainerBuilder(); containerBuilder.RegisterType<EmployeeContext>().As<IDataContextAsync>().AsImplementedInterfaces().InstancePerRequest(); containerBuilder.RegisterType<ProtivitiContextProvider<EmployeeContext>>().As<IBreezeUnitofWorkAsync>().AsImplementedInterfaces().InstancePerRequest(); //containerBuilder.Register(c=> new EFContextProvider<ApplicationDbContext>()).As<EFContextProvider<ApplicationDbContext>>().InstancePerRequest(); //containerBuilder.RegisterType<BaseController>().PropertiesAutowired(); containerBuilder.Register(c => new RepositoryProvider(new RepositoryFactories())).As<IRepositoryProvider>().AsImplementedInterfaces().InstancePerRequest(); containerBuilder.RegisterType<Repository<Employee>>().As<IRepositoryAsync<Employee>>().AsImplementedInterfaces().InstancePerRequest(); // containerBuilder.RegisterType<EmployeeService>().As<IEmployeeService>().AsImplementedInterfaces().InstancePerRequest();// InstancePerApiRequest(); containerBuilder.Register(c => new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext()) { /*Avoids UserStore invoking SaveChanges on every actions.*/ //AutoSaveChanges = false })).As<UserManager<ApplicationUser>>().InstancePerRequest(); containerBuilder.RegisterApiControllers(System.Reflection.Assembly.GetExecutingAssembly()).PropertiesAutowired(); IContainer container = containerBuilder.Build(); return container; }
protected void Application_Start() { var builder = new ContainerBuilder(); builder.RegisterControllers(Assembly.GetExecutingAssembly()); builder.RegisterApiControllers(Assembly.GetExecutingAssembly()); builder.RegisterType<LightsService>().As<ILightsService>().SingleInstance(); builder.RegisterType<BusPublisher>().As<IBusPublisher>() .WithParameter("connectionString", ConfigurationManager.AppSettings["Microsoft.ServiceBus.ConnectionString"]); builder.RegisterType<ColourRepository>().As<IColourRepository>() .WithParameter("connectionString", ConfigurationManager.ConnectionStrings["StorageConnectionString"].ConnectionString); builder.RegisterType<DateTimeProvider>().As<IDateTimeProvider>(); builder.RegisterType<ElasticMetricWriter>().As<IMetricWriter>() .WithParameter("elasticSearchEndpoint", ConfigurationManager.AppSettings["ElasticSearchEndpoint"]); builder.RegisterType<SmsSettings>().As<ISmsSettings>().SingleInstance(); var container = builder.Build(); GlobalConfiguration.Configuration.DependencyResolver = new AutofacWebApiDependencyResolver(container); DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); AreaRegistration.RegisterAllAreas(); GlobalConfiguration.Configure(WebApiConfig.Register); RouteConfig.RegisterRoutes(RouteTable.Routes); var connectionString = ConfigurationManager.AppSettings["Microsoft.ServiceBus.ConnectionString"]; var busPublisher = new BusPublisher(connectionString); busPublisher.InitializeAsync().Wait(); }
public static void Configure() { var builder = new ContainerBuilder(); var config = GlobalConfiguration.Configuration; builder.RegisterApiControllers(Assembly.GetExecutingAssembly()); //builder.RegisterWebApiFilterProvider(config); var dbPath = WebConfigurationManager.AppSettings["sqLiteDb"].Replace(@"~\", ""); bool useDiskConnOnlyValue; if (!bool.TryParse(WebConfigurationManager.AppSettings["useDiskConnOnly"], out useDiskConnOnlyValue)) { throw new InvalidOperationException("Invalid useDiskCOnnOnly in web.config"); } var lucenceIndeDirectory = WebConfigurationManager.AppSettings["lucenceIndeDirectory"].Replace(@"~\", ""); builder.RegisterModule(new LuceneIndexModule(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, lucenceIndeDirectory))); builder.RegisterModule(new ConnectionManagerModule(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, dbPath), useDiskConnOnlyValue)); builder.RegisterModule(new LocationControllerModule()); var container = builder.Build(); config.DependencyResolver = new AutofacWebApiDependencyResolver(container); }
private static IContainer RegisterServices(ContainerBuilder builder) { builder.RegisterApiControllers(Assembly.GetExecutingAssembly()); // EF TravelBlogContext builder.RegisterType<TravelBlogContext>() .As<IdentityDbContext>() .InstancePerRequest(); builder.RegisterType<DbFactory>() .As<IDbFactory>() .InstancePerRequest(); builder.RegisterType<UnitOfWork>() .As<IUnitOfWork>() .InstancePerRequest(); builder.RegisterGeneric(typeof(EntityBaseRepository<>)) .As(typeof(IEntityBaseRepository<>)) .InstancePerRequest(); // Services /* builder.RegisterType<EncryptionService>() .As<IEncryptionService>() .InstancePerRequest(); builder.RegisterType<MembershipService>() .As<IMembershipService>() .InstancePerRequest(); */ Container = builder.Build(); return Container; }
public void Configuration(IAppBuilder app) { AreaRegistration.RegisterAllAreas(); GlobalConfiguration.Configure(WebApiConfig.Register); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); //Autofac Configuration var builder = new Autofac.ContainerBuilder(); builder.RegisterControllers(Assembly.GetExecutingAssembly()); builder.RegisterApiControllers(Assembly.GetExecutingAssembly()); builder.RegisterModule(new ServiceModule()); builder.RegisterModule(new EFModule()); var container = builder.Build(); //DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); // Set the dependency resolver for MVC. var mvcResolver = new AutofacDependencyResolver(container); DependencyResolver.SetResolver(mvcResolver); // Set the dependency resolver for Web API. var webApiResolver = new AutofacWebApiDependencyResolver(container); GlobalConfiguration.Configuration.DependencyResolver = webApiResolver; ApplicationContainer.Container = container; }
protected override void Load(ContainerBuilder builder) { builder.RegisterApiControllers(typeof(WebApiApplication).Assembly); builder.RegisterControllers(typeof(WebApiApplication).Assembly); builder.RegisterModule<AutofacWebTypesModule>(); builder.RegisterType<GroupService>().As<IGroupService>(); builder.RegisterType<UserService>().As<IUserService>(); builder.RegisterType<EventService>().As<IEventService>(); builder.RegisterType<CommentService>().As<ICommentService>(); builder.RegisterType<SearchService>().As<ISearchService>(); builder.Register(s => new UserRepository(ConnectionString)).As<IUserRepository>(); builder.Register(s => new GroupRepository(ConnectionString)).As<IGroupRepository>(); builder.Register(s => new EventRepository(ConnectionString)).As<IEventRepository>(); builder.Register(s => new CommentRepository(ConnectionString)).As<ICommentRepository>(); builder.Register(s => new SearchRepository(ConnectionString)).As<ISearchRepository>(); builder.RegisterType<RedisClient>().As<IRedisClient>() .UsingConstructor(typeof(string), typeof(int)) .WithParameters(new List<Parameter> { new TypedParameter(typeof (string), "127.0.0.1"), new TypedParameter(typeof (int), 6379) }); }
public void Configuration(IAppBuilder app) { var config = new HttpConfiguration(); config.Routes.MapHttpRoute( "DefaultApi", "api/{controller}/{id}", new {id = RouteParameter.Optional}); var builder = new ContainerBuilder(); // Register Web API controller in executing assembly. builder.RegisterApiControllers(Assembly.GetExecutingAssembly()); // Register a logger service to be used by the controller and middleware. builder.Register(c => new Logger()).As<ILogger>().InstancePerRequest(); // Autofac will add middleware to IAppBuilder in the order registered. // The middleware will execute in the order added to IAppBuilder. builder.RegisterType<FirstMiddleware>().InstancePerRequest(); builder.RegisterType<SecondMiddleware>().InstancePerRequest(); var container = builder.Build(); // Create and assign a dependency resolver for Web API to use. config.DependencyResolver = new AutofacWebApiDependencyResolver(container); // This should be the first middleware added to the IAppBuilder. app.UseAutofacMiddleware(container); // Make sure the Autofac lifetime scope is passed to Web API. app.UseAutofacWebApi(config); app.UseWebApi(config); }
public static void Initialise() { var configuration = GlobalConfiguration.Configuration; var builder = new ContainerBuilder(); builder.RegisterControllers(Assembly.GetExecutingAssembly()); builder.RegisterApiControllers(Assembly.GetExecutingAssembly()); builder.Register(c => new DatabaseFactory()).As<IDatabaseFactory>().InstancePerLifetimeScope(); builder.RegisterType<UnitOfWork>().As<IUnitOfWork>().InstancePerLifetimeScope(); builder.RegisterType<FastDBService>().As<IFastDB>().InstancePerLifetimeScope(); builder.RegisterType<AOFAdapter>().As<IAOF>().InstancePerLifetimeScope(); builder.RegisterType<Memory>().As<IMemory>().InstancePerLifetimeScope(); builder.RegisterType<HashEntity>().As<IHashEntity>().InstancePerLifetimeScope(); builder.RegisterType<ListEntity>().As<IListEntity>().InstancePerLifetimeScope(); builder.RegisterType<SingleEntity>().As<ISingleEntity>().InstancePerLifetimeScope(); builder.RegisterType<TreeEntity>().As<ITreeEntity>().InstancePerLifetimeScope(); builder.RegisterType<SingleCache>().As<ISingleCache>().InstancePerLifetimeScope(); builder.RegisterType<ListCache>().As<IListCache>().InstancePerLifetimeScope(); builder.RegisterType<HashCache>().As<IHashCache>().InstancePerLifetimeScope(); builder.RegisterType<TreeCache>().As<ITreeCache>().InstancePerLifetimeScope(); builder.RegisterType<KeyValueSR>().As<IKeyValueSR>().InstancePerLifetimeScope(); builder.RegisterType<DBStart>(); builder.RegisterType<DBExit>(); IContainer container = builder.Build(); configuration.DependencyResolver = new AutofacWebApiDependencyResolver(container); DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); }
public static IAppBuilder UseAutofacInjection(this IAppBuilder app, HttpConfiguration httpConfiguration) { var currentAssembly = Assembly.GetExecutingAssembly(); var builder = new ContainerBuilder(); // Web API builder.RegisterApiControllers(currentAssembly); builder.RegisterWebApiFilterProvider(httpConfiguration); // MVC builder.RegisterControllers(currentAssembly).PropertiesAutowired(); builder.RegisterModelBinders(currentAssembly); builder.RegisterModelBinderProvider(); builder.RegisterModule<AutofacWebTypesModule>(); //builder.RegisterSource(new ViewRegistrationSource()); builder.RegisterFilterProvider(); builder.RegisterAssemblyModules(currentAssembly); // Hook it up var container = builder.Build(); httpConfiguration.DependencyResolver = new AutofacWebApiDependencyResolver(container); DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); // Register the Autofac middleware FIRST, then the Autofac MVC middleware. app.UseAutofacMiddleware(container); app.UseAutofacMvc(); return app; }
public static void Configure() { var assemblies = BuildManager.GetReferencedAssemblies().Cast<Assembly>().ToArray(); var builder = new ContainerBuilder(); builder.RegisterAssemblyTypes(assemblies) .Where(t => typeof(IStartable).IsAssignableFrom(t)) .As<IStartable>() .SingleInstance(); builder.RegisterAssemblyModules(assemblies); builder.RegisterControllers(Assembly.GetExecutingAssembly()); builder.RegisterApiControllers(Assembly.GetExecutingAssembly()); var container = builder.Build(); // Set the dependency resolver for Web API. var webApiResolver = new AutofacWebApiDependencyResolver(container); GlobalConfiguration.Configuration.DependencyResolver = webApiResolver; // Set the dependency resolver for MVC. var mvcResolver = new AutofacDependencyResolver(container); DependencyResolver.SetResolver(mvcResolver); }
public static void RegisterContainer() { // Create the container builder. var builder = new ContainerBuilder(); builder.RegisterControllers(Assembly.GetExecutingAssembly()); builder.RegisterApiControllers(Assembly.GetExecutingAssembly()); builder.Register(db => { var dbName = ConfigurationManager.AppSettings["dbName"]; return new MongoClient().GetServer().GetDatabase(dbName); }).As<MongoDatabase>().InstancePerHttpRequest(); builder.RegisterGeneric(typeof(Repository<>)).As(typeof(IRepository<>)).InstancePerHttpRequest(); builder.RegisterAssemblyTypes(Assembly.GetExecutingAssembly()) .Where(t => t.Name.EndsWith("Service")) .AsSelf().InstancePerHttpRequest(); // Build the container. var container = builder.Build(); // Create the depenedency resolver. var resolver = new AutofacWebApiDependencyResolver(container); // Configure Web API with the dependency resolver. GlobalConfiguration.Configuration.DependencyResolver = resolver; // Configure MVC with the dependency resolver. DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); }
private static IContainer RegisterServices(ContainerBuilder builder) { builder.RegisterApiControllers(Assembly.GetExecutingAssembly()); // EF DbContext builder.RegisterType<EntitiesContext>() .As<DbContext>() .InstancePerApiRequest(); // Register repositories by using Autofac's OpenGenerics feature // More info: http://code.google.com/p/autofac/wiki/OpenGenerics builder.RegisterGeneric(typeof(EntityRepository<>)) .As(typeof(IEntityRepository<>)) .InstancePerApiRequest(); // Services builder.RegisterType<CryptoService>() .As<ICryptoService>() .InstancePerApiRequest(); builder.RegisterType<MembershipService>() .As<IMembershipService>() .InstancePerApiRequest(); builder.RegisterType<ShipmentService>() .As<IShipmentService>() .InstancePerApiRequest(); return builder.Build(); }
private static void ConfigureAutofac(HttpConfiguration config, IIssueStore issueStore) { var builder = new ContainerBuilder(); if (issueStore == null) { builder.RegisterType<InMemoryIssueStore>() .As<IIssueStore>() .InstancePerLifetimeScope(); } else { builder.RegisterInstance(issueStore); } builder.RegisterType<IssueStateFactory>() .As<IStateFactory<Issue, IssueState>>() .InstancePerLifetimeScope(); builder.RegisterType<IssueLinkFactory>() .InstancePerLifetimeScope(); builder.RegisterHttpRequestMessage(config); builder.RegisterApiControllers(Assembly.GetExecutingAssembly()); var container = builder.Build(); var resolver = new AutofacWebApiDependencyResolver(container); config.DependencyResolver = resolver; }
public static IContainer Configure(WsFederationPluginOptions options, InternalConfiguration internalConfig) { if (internalConfig == null) throw new ArgumentNullException("internalConfig"); if (options == null) throw new ArgumentNullException("options"); var factory = options.Factory; factory.Validate(); var builder = new ContainerBuilder(); // mandatory from factory builder.Register(factory.CoreSettings); builder.Register(factory.UserService); builder.Register(factory.RelyingPartyService); builder.Register(factory.WsFederationSettings); // validators builder.RegisterType<SignInValidator>().AsSelf(); // processors builder.RegisterType<SignInResponseGenerator>().AsSelf(); builder.RegisterType<MetadataResponseGenerator>().AsSelf(); // general services builder.RegisterType<CookieMiddlewareTrackingCookieService>().As<ITrackingCookieService>(); builder.RegisterInstance(options).AsSelf(); builder.RegisterInstance(internalConfig).AsSelf(); // load core controller builder.RegisterApiControllers(typeof(WsFederationController).Assembly); return builder.Build(); }
public void ConfigureAutofac(IAppBuilder app) { var builder = new ContainerBuilder(); builder.RegisterType<ConfigurationProvider>() .As<IConfigurationProvider>(); builder.RegisterType<TelemetryService>() .As<ITelemetryService>(); builder.RegisterType<IotHubRepository>() .As<IIotHubRepository>(); builder.RegisterControllers(Assembly.GetExecutingAssembly()); builder.RegisterApiControllers(Assembly.GetExecutingAssembly()); var container = builder.Build(); //Setup Autofac dependency resolver for MVC DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); //Setup Autofac dependency resolver for WebAPI HttpConfiguration.DependencyResolver = new AutofacWebApiDependencyResolver(container); app.UseAutofacMiddleware(container); app.UseAutofacWebApi(HttpConfiguration); }
public static void Register(HttpConfiguration config) { // Create the container builder. var builder = new ContainerBuilder(); // Register MVC 4 Contrrollers builder.RegisterControllers(Assembly.GetExecutingAssembly()); // Register the Web API controllers. builder.RegisterApiControllers(Assembly.GetExecutingAssembly()); //register Domain Depedencies builder.RegisterModule(new Domain.AutofacModule()); // Build the container. var container = builder.Build(); // SET Web API resolver // Create the depenedency resolver. var resolver = new AutofacWebApiDependencyResolver(container); // Configure Web API with the dependency resolver. config.DependencyResolver = resolver; //set MVC4 resolver DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); }
private void OwinStartup(IAppBuilder app) { HttpConfiguration config = new HttpConfiguration(); IDependencyResolver resolver; #if true Unity.IUnityContainer uc = new Unity.UnityContainer(); uc.RegisterInstance(typeof(IPlop), new Plop()); resolver = new UnityResolver(uc); #else Autofac.ContainerBuilder builder = new Autofac.ContainerBuilder(); builder.RegisterApiControllers(typeof(WorkerRole).Assembly); builder.RegisterInstance(new Plop()).As <IPlop>(); Autofac.IContainer container = builder.Build(); app.UseAutofacMiddleware(container); app.UseAutofacWebApi(config); resolver = new AutofacWebApiDependencyResolver(container); #endif config.DependencyResolver = resolver; config.MapHttpAttributeRoutes(); config.EnsureInitialized(); app.UseWebApi(config); }
public static void Register() { //初始化AutoFac的相关功能 /* * 1.0 告诉AutoFac初始化数据仓储层FB.CMS.Repository.dll中所有类的对象实例。这些对象实例以其接口的形式保存在AutoFac容器中 * 2.0 告诉AutoFac初始化业务逻辑层FB.CMS.Services.dll中所有类的对象实例。这些对象实例以其接口的形式保存在AutoFac容器中 * 3.0 将MVC默认的控制器工厂替换成AutoFac的工厂 */ //第一步: 构造一个AutoFac的builder容器 ContainerBuilder builder = new Autofac.ContainerBuilder(); //第二步:告诉AutoFac控制器工厂,控制器类的创建去哪些程序集中查找(默认控制器工厂是去扫描bin目录下的所有程序集) //2.1 从当前运行的bin目录下加载FB.CMS.MvcSite.dll程序集 Assembly controllerAss = Assembly.Load("Qingke365.RollCall.WebApi"); //2.2 告诉AutoFac控制器工厂,控制器的创建从controllerAss中查找(注意:RegisterControllers()方法是一个可变参数,如果你的控制器类的创建需要去多个程序集中查找的话,那么我们就再用Assembly controllerBss=Assembly.Load("需要的程序集名")加载需要的程序集,然后与controllerAss组成数组,然后将这个数组传递到RegisterControllers()方法中) builder.RegisterControllers(controllerAss); builder.RegisterApiControllers(controllerAss); //第三步:告诉AutoFac容器,创建项目中的指定类的对象实例,以接口的形式存储(其实就是创建数据仓储层与业务逻辑层这两个程序集中所有类的对象实例,然后以其接口的形式保存到AutoFac容器内存中,当然如果有需要也可以创建其他程序集的所有类的对象实例,这个只需要我们指定就可以了) //3.1 加载数据仓储层FB.CMS.Repository这个程序集。 Assembly repositoryAss = Assembly.Load("Qingke365.RollCall.Dal"); //3.2 反射扫描这个FB.CMS.Repository.dll程序集中所有的类,得到这个程序集中所有类的集合。 Type[] rtypes = repositoryAss.GetTypes(); //3.3 告诉AutoFac容器,创建rtypes这个集合中所有类的对象实例 builder.RegisterTypes(rtypes) .AsImplementedInterfaces(); //指明创建的rtypes这个集合中所有类的对象实例,以其接口的形式保存 //3.4 加载业务逻辑层FB.CMS.Services这个程序集。 Assembly servicesAss = Assembly.Load("Qingke365.RollCall.Bll"); //3.5 反射扫描这个FB.CMS.Services.dll程序集中所有的类,得到这个程序集中所有类的集合。 Type[] stypes = servicesAss.GetTypes(); //3.6 告诉AutoFac容器,创建stypes这个集合中所有类的对象实例 builder.RegisterTypes(stypes) .AsImplementedInterfaces(); //指明创建的stypes这个集合中所有类的对象实例,以其接口的形式保存 //第四步:创建一个真正的AutoFac的工作容器 var container = builder.Build(); //我们已经创建了指定程序集的所有类的对象实例,并以其接口的形式保存在AutoFac容器内存中了。那么我们怎么去拿它呢? //从AutoFac容器内部根据指定的接口获取其实现类的对象实例 //假设我要拿到IsysFunctionServices这个接口的实现类的对象实例,怎么拿呢? //var obj = container.Resolve<IsysFunctionServices>(); //只有有特殊需求的时候可以通过这样的形式来拿。一般情况下没有必要这样来拿,因为AutoFac会自动工作(即:会自动去类的带参数的构造函数中找与容器中key一致的参数类型,并将对象注入到类中,其实就是将对象赋值给构造函数的参数) //第五步:将当前容器中的控制器工厂替换掉MVC默认的控制器工厂。(即:不要MVC默认的控制器工厂了,用AutoFac容器中的控制器工厂替代)此处使用的是将AutoFac工作容器交给MVC底层 (需要using System.Web.Mvc;) DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); GlobalConfiguration.Configuration.DependencyResolver = new AutofacWebApiDependencyResolver(container); }
protected void Application_Start() { var config = GlobalConfiguration.Configuration; // Autofac Configuration var builder = new Autofac.ContainerBuilder(); builder.RegisterApiControllers(Assembly.GetExecutingAssembly()); builder.RegisterModule(new RepositoryModule()); builder.RegisterModule(new ServiceModule()); builder.RegisterModule(new EFModule()); // Register your Web API controllers. builder.RegisterApiControllers(typeof(MvcApplication).Assembly).PropertiesAutowired(); //OPTIONAL: Register the Autofac filter provider. builder.RegisterWebApiFilterProvider(config); //OPTIONAL: Register the Autofac model binder provider. builder.RegisterWebApiModelBinderProvider(); //Set the dependency resolver to be Autofac. var container = builder.Build(); // DependencyResolver.SetResolver(new AutofacWebApiDependencyResolver(container)); DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); config.DependencyResolver = new AutofacWebApiDependencyResolver(container); AreaRegistration.RegisterAllAreas(); WebApiConfig.Register(GlobalConfiguration.Configuration); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); GlobalConfiguration.Configuration.EnsureInitialized(); }
public void Configure(IAppBuilder appBuilder) { var config = new HttpConfiguration(); config.MapHttpAttributeRoutes(); // using attribute based routing because I prefer it var builder = new Autofac.ContainerBuilder(); // Authentication Filter builder.Register(c => new AuthoriseAttribute()) .AsWebApiAuthenticationFilterFor <StatsController>() .InstancePerLifetimeScope(); builder.RegisterApiControllers(Assembly.GetExecutingAssembly()).PropertiesAutowired(); // Create the container builder. builder.RegisterApiControllers(Assembly.GetExecutingAssembly()); // Register the Web API controllers. builder.RegisterWebApiFilterProvider(config); // optional builder.RegisterType <Stat>().As <IStat>().InstancePerRequest(); var container = builder.Build(); config.DependencyResolver = new AutofacWebApiDependencyResolver(container); appBuilder.UseAutofacMiddleware(container); appBuilder.UseAutofacWebApi(config); // Make sure the Autofac lifetime scope is passed to Web API. appBuilder.UseWebApi(config); // enable web-api string filedir = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "../../web"); appBuilder.UseFileServer(new FileServerOptions { EnableDefaultFiles = true, DefaultFilesOptions = { DefaultFileNames = new[] { "Index.html" } }, EnableDirectoryBrowsing = true, FileSystem = new PhysicalFileSystem(filedir), }); }
private void autofacDependency_Resolver() { //adding mapping var builder = new Autofac.ContainerBuilder(); builder.RegisterApiControllers(Assembly.GetExecutingAssembly()).PropertiesAutowired(); // Register WebApi Controllers builder.RegisterModule(new RepositoryModule()); builder.RegisterModule(new EFModule()); var container = builder.Build(); //DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); // Set the MVC DependencyResolver GlobalConfiguration.Configuration.DependencyResolver = new AutofacWebApiDependencyResolver(container); // Set the WebApi DependencyResolver }
/// <summary> /// Registers Autocore into the WepApi configuration loading dependencies from the specified assemblies. /// </summary> public static IContainer RegisterAutocore(this HttpConfiguration config, IEnumerable <Assembly> assemblies) { var asm = typeof(Factory).Assembly; var asmList = assemblies.ToList(); if (!asmList.Contains(asm)) { asmList.Add(asm); } var builder = new Autofac.ContainerBuilder(); builder.RegisterDependencyAssemblies(asmList); builder.RegisterApiControllers(asmList.ToArray()); return(RegisterAutocore(config, builder.Build())); }
/// <summary> /// Register Autofac /// </summary> private void AutofacRegistration() { //Autofac Configuration var builder = new Autofac.ContainerBuilder(); builder.RegisterControllers(typeof(MvcApplication).Assembly).PropertiesAutowired(); builder.RegisterApiControllers(typeof(MvcApplication).Assembly); builder.RegisterModule(new ServiceModule()); builder.RegisterModule(new RepositoryModule()); builder.RegisterModule(new EFModule()); var container = builder.Build(); DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); GlobalConfiguration.Configuration.DependencyResolver = new AutofacWebApiDependencyResolver((IContainer)container); }
public void Configuration(IAppBuilder app) { var builder = new Autofac.ContainerBuilder(); builder.RegisterType <DefaultRequestDispacher>().As <IRequestDispatcher>(); builder.RegisterType <RequestHandlerResolver>().As <IRequestHandlerResolver>(); builder.RegisterType <DefaultWebApiRequestProcessor>().As <IWebApiRequestProcessor>(); var requestHandlerInterface = typeof(IRequestHandler <,>); var requestHandlerDefinitions = RequestHandlerFinder.InAssembly(this.GetType().GetTypeInfo().Assembly); foreach (var requestHandler in requestHandlerDefinitions) { builder.RegisterType(requestHandler.RequestHandlerType) .As(requestHandlerInterface.MakeGenericType(requestHandler.RequestType, requestHandler.ResponseType)); } var config = new HttpConfiguration(); var generated = config.ConfigureRequestHandlers(requestHandlerDefinitions); builder.RegisterApiControllers(generated); var container = builder.Build(); config.DependencyResolver = new AutofacWebApiDependencyResolver(container); // Register the Autofac middleware FIRST, then the Autofac Web API middleware, // and finally the standard Web API middleware. config.MapHttpAttributeRoutes(); app.UseAutofacMiddleware(container); app.UseAutofacWebApi(config); app.UseWebApi(config); config.EnableSwagger(c => { c.SingleApiVersion("v1", "RequestHandlers.TestHost"); }) .EnableSwaggerUi(c => { }); }
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); GlobalConfiguration.Configure(WebApiConfig.Register); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); //Autofac Configuration var builder = new Autofac.ContainerBuilder(); builder.RegisterControllers(typeof(MvcApplication).Assembly).PropertiesAutowired(); builder.RegisterApiControllers(typeof(MvcApplication).Assembly).PropertiesAutowired(); builder.RegisterModule(new ServiceModule()); builder.RegisterModule(new EFModule()); //var x = new ApplicationDbContext(); //builder.Register<ApplicationDbContext>(c => x); //builder.Register<UserStore<ApplicationUser>>(c => new UserStore<ApplicationUser>(x)).AsImplementedInterfaces(); //builder.Register<IdentityFactoryOptions<ApplicationUserManager>>(c => new IdentityFactoryOptions<ApplicationUserManager>() //{ // DataProtectionProvider = new Microsoft.Owin.Security.DataProtection.DpapiDataProtectionProvider("ApplicationName") //}); //builder.RegisterType<ApplicationUserManager>(); var container = builder.Build(); //DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); // Set the dependency resolver for MVC. var mvcResolver = new AutofacDependencyResolver(container); DependencyResolver.SetResolver(mvcResolver); // Set the dependency resolver for Web API. var webApiResolver = new AutofacWebApiDependencyResolver(container); GlobalConfiguration.Configuration.DependencyResolver = webApiResolver; }
public static IContainer Register(System.Web.Http.HttpConfiguration config) { var builder = new Autofac.ContainerBuilder(); builder.RegisterModule(new Domain.Core.Modules.CoreModule()); builder.RegisterModule(new Domain.Core.Modules.LogModule()); builder.RegisterType <PrintProcessor>().As <IPrintProcessor>(); builder.RegisterApiControllers(typeof(WebApiApplication).Assembly); var container = builder.Build(); //Mvc & WebApi DependencyResolvers DependencyResolver.SetResolver(new Autofac.Integration.Mvc.AutofacDependencyResolver(container)); config.DependencyResolver = new AutofacWebApiDependencyResolver(container); return(container); }
public static void SetUpAutofac() { var builder = new Autofac.ContainerBuilder(); builder.RegisterApiControllers(Assembly.GetExecutingAssembly()).InstancePerRequest(); builder.RegisterControllers(typeof(WebApiApplication).Assembly).PropertiesAutowired(); builder.RegisterModule(new RepositoryModule()); builder.RegisterModule(new ManagerModule()); builder.RegisterModule(new EFModule()); var container = builder.Build(); DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); var WebApiResolver = new AutofacWebApiDependencyResolver(container); GlobalConfiguration.Configuration.DependencyResolver = WebApiResolver; var MvcResolver = new AutofacDependencyResolver(container); DependencyResolver.SetResolver(MvcResolver); }
// For more information on bundling, visit http://go.microsoft.com/fwlink/?LinkId=301862 public static void RegisterDependancies(Autofac.ContainerBuilder builder) { builder = builder ?? new ContainerBuilder(); // Register the Web API controllers. builder.RegisterApiControllers(typeof(AutofacConfig).Assembly); var geocahceDirectory = ConfigurationManager.AppSettings["GeoCache"] ?? @".\App_Data\geocache.json"; if (!Path.IsPathRooted(geocahceDirectory)) { geocahceDirectory = Path.Combine(HttpRuntime.AppDomainAppPath, geocahceDirectory); geocahceDirectory = Path.GetFullPath(geocahceDirectory); } builder.RegisterInstance(new Services.Geocoder(geocahceDirectory)); var GedcomFile = ConfigurationManager.AppSettings["GedcomFile"] ?? @".\App_Data\Data.ged"; if (!Path.IsPathRooted(GedcomFile)) { GedcomFile = Path.Combine(HttpRuntime.AppDomainAppPath, GedcomFile); GedcomFile = Path.GetFullPath(GedcomFile); } builder.RegisterInstance(new Gedcom.Net.GedcomDocument(Gedcom.Net.FileDom.FileDocument.Load(GedcomFile))); builder.RegisterType <Services.DataStore>(); // Build the container. var container = builder.Build(); // Create the depenedency resolver. var resolver = new AutofacWebApiDependencyResolver(container); // Configure Web API with the dependency resolver. GlobalConfiguration.Configuration.DependencyResolver = resolver; }
public static void ConfigureContainer() { var builder = new Autofac.ContainerBuilder(); var config = GlobalConfiguration.Configuration; builder.RegisterApiControllers(Assembly.GetExecutingAssembly()); // controller builder.RegisterWebApiFilterProvider(config); // filter builder.RegisterHttpRequestMessage(GlobalConfiguration.Configuration); builder.Register(e => // HttpContextBase HttpContext.Current != null ? new HttpContextWrapper(HttpContext.Current) : e.Resolve <HttpRequestMessage>().Properties["MS_HttpContext"]) .As <HttpContextBase>() .InstancePerRequest(); builder.RegisterModule(new ServiceModule()); // Moduel var container = builder.Build(); config.DependencyResolver = new AutofacWebApiDependencyResolver(container); }
protected void Application_Start() { var builder = new Autofac.ContainerBuilder(); builder.RegisterApiControllers(Assembly.GetExecutingAssembly()); builder.RegisterControllers(typeof(MvcApplication).Assembly); builder.RegisterType <MailService>().As <IMailService>(); builder.RegisterType <MessageBoardContext>().As <MessageBoardContext>(); builder.RegisterType <MessagesRepository>().As <IMessagesRepository>(); var container = builder.Build(); DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); GlobalConfiguration.Configuration.DependencyResolver = new AutofacWebApiDependencyResolver(container); AreaRegistration.RegisterAllAreas(); GlobalConfiguration.Configure(WebApiConfig.Register); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); GlobalConfiguration.Configuration.EnsureInitialized(); }
public static void Register() { var builder = new Autofac.ContainerBuilder(); var config = GlobalConfiguration.Configuration; // Register your Web API controllers. builder.RegisterApiControllers(Assembly.GetExecutingAssembly()); // OPTIONAL: Register the Autofac filter provider. builder.RegisterWebApiFilterProvider(config); // OPTIONAL: Register the Autofac model binder provider. builder.RegisterWebApiModelBinderProvider(); builder.RegisterModule(new EFModule()); builder.RegisterModule(new ServiceModule()); builder.RegisterModule(new RepositoryModule()); var container = builder.Build(); config.DependencyResolver = new AutofacWebApiDependencyResolver(container); }
public void Register(Autofac.ContainerBuilder builder, Core.Infrastructure.ITypeFinder typeFinder) { //注册控制器 builder.RegisterControllers(typeFinder.GetAssemblies().ToArray()); //注册Web Api builder.RegisterApiControllers(Assembly.GetExecutingAssembly()); //插件 builder.RegisterType <PluginFinder>().As <IPluginFinder>().InstancePerLifetimeScope(); #region 缓存注入 //本地内存缓存 builder.RegisterModule(new CacheModule()); builder.RegisterType <DefaultCacheHolder>().As <ICacheHolder>().SingleInstance(); //分布式Redis 缓存 builder.RegisterType <RedisCacheManager>().As <IRedisCacheManager>() .WithParameters( new[] { new ResolvedParameter((pi, i) => pi.ParameterType == typeof(Type), (pi, i) => GetType()), new ResolvedParameter((pi, i) => pi.ParameterType == typeof(IRedisCacheHolder), (pi, i) => i.Resolve <IRedisCacheHolder>()) } ).SingleInstance(); builder.RegisterType <RedisCacheHolder>().As <IRedisCacheHolder>().SingleInstance(); builder.RegisterType <DefaultCacheContextAccessor>().As <ICacheContextAccessor>().SingleInstance(); builder.RegisterType <DefaultParallelCacheContext>().As <IParallelCacheContext>().SingleInstance(); builder.RegisterType <DefaultAsyncTokenProvider>().As <IAsyncTokenProvider>().SingleInstance(); builder.RegisterType <RedisSignals>().As <IRedisSignals>().SingleInstance(); RegisterVolatileProvider <Signals, ISignals>(builder); RegisterVolatileProvider <RedisSignals, IRedisSignals>(builder); builder.RegisterType <NewtonsoftSerializer>().As <ISerializer>().SingleInstance(); builder.RegisterType <StackExchangeRedisCacheClient>().As <ICacheClient>().SingleInstance(); #endregion #region 日志模块 builder.RegisterModule(new LoggingModule()); #endregion #region 注册事件的使用者发布者 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(); #endregion #region 注册数据操作 builder.RegisterType <DapperContext>().As <IDbContext>().WithParameter("connectionName", "LuckyNewsContext").InstancePerLifetimeScope(); builder.RegisterType <HrDbContext>().As <IHrDbContext>().InstancePerLifetimeScope(); builder.RegisterType <NewsContext>().As <INewsContext>().InstancePerLifetimeScope(); builder.RegisterType <AchievementService>().As <IAchievementService>().InstancePerLifetimeScope(); builder.RegisterType <AreaService>().As <IAreaService>().InstancePerLifetimeScope(); builder.RegisterType <CertService>().As <ICertService>().InstancePerLifetimeScope(); builder.RegisterType <CertCategoryService>().As <ICertCategoryService>().InstancePerLifetimeScope(); builder.RegisterType <DepartmentService>().As <IDepartmentService>().InstancePerLifetimeScope(); builder.RegisterType <DepartmentRoleService>().As <IDepartmentRoleService>().InstancePerLifetimeScope(); builder.RegisterType <DistributorService>().As <IDistributorService>().InstancePerLifetimeScope(); builder.RegisterType <DistributorConfigService>().As <IDistributorConfigService>().InstancePerLifetimeScope(); builder.RegisterType <EducationService>().As <IEducationService>().InstancePerLifetimeScope(); builder.RegisterType <IndustryService>().As <IIndustryService>().InstancePerLifetimeScope(); builder.RegisterType <JobCategoryService>().As <IJobCategoryService>().InstancePerLifetimeScope(); builder.RegisterType <LanguageService>().As <ILanguageService>().InstancePerLifetimeScope(); builder.RegisterType <LanguageCategoryService>().As <ILanguageCategoryService>().InstancePerLifetimeScope(); builder.RegisterType <ManagerService>().As <IManagerService>().InstancePerLifetimeScope(); builder.RegisterType <ManagerFileService>().As <IManagerFileService>().InstancePerLifetimeScope(); builder.RegisterType <ManagerLogService>().As <IManagerLogService>().InstancePerLifetimeScope(); builder.RegisterType <ManagerRecordService>().As <IManagerRecordService>().InstancePerLifetimeScope(); builder.RegisterType <NavService>().As <INavService>().InstancePerLifetimeScope(); builder.RegisterType <NavOperationService>().As <INavOperationService>().InstancePerLifetimeScope(); builder.RegisterType <NewsService>().As <INewsService>().InstancePerLifetimeScope(); builder.RegisterType <NewsTypeService>().As <INewsTypeService>().InstancePerLifetimeScope(); builder.RegisterType <OperationService>().As <IOperationService>().InstancePerLifetimeScope(); builder.RegisterType <OtherService>().As <IOtherService>().InstancePerLifetimeScope(); builder.RegisterType <PersonalService>().As <IPersonalService>().InstancePerLifetimeScope(); builder.RegisterType <PracticeService>().As <IPracticeService>().InstancePerLifetimeScope(); builder.RegisterType <ProjectService>().As <IProjectService>().InstancePerLifetimeScope(); builder.RegisterType <ResumeService>().As <IResumeService>().InstancePerLifetimeScope(); builder.RegisterType <ResumeAreaService>().As <IResumeAreaService>().InstancePerLifetimeScope(); builder.RegisterType <ResumeIndustryService>().As <IResumeIndustryService>().InstancePerLifetimeScope(); builder.RegisterType <ResumeJobCategoryService>().As <IResumeJobCategoryService>().InstancePerLifetimeScope(); builder.RegisterType <RoleService>().As <IRoleService>().InstancePerLifetimeScope(); builder.RegisterType <RoleNavService>().As <IRoleNavService>().InstancePerLifetimeScope(); builder.RegisterType <SkillService>().As <ISkillService>().InstancePerLifetimeScope(); builder.RegisterType <SkillCategoryService>().As <ISkillCategoryService>().InstancePerLifetimeScope(); builder.RegisterType <WorkService>().As <IWorkService>().InstancePerLifetimeScope(); //新闻 builder.RegisterType <CategoryService>().As <ICategoryService>().InstancePerLifetimeScope(); builder.RegisterType <LinksService>().As <ILinksService>().InstancePerLifetimeScope(); builder.RegisterType <NewsArticlesService>().As <INewsArticlesService>().InstancePerLifetimeScope(); builder.RegisterType <NewsArticleTextService>().As <INewsArticleTextService>().InstancePerLifetimeScope(); #endregion }
private void RegisterApiControllers() { containerBuilder.RegisterApiControllers(Assembly.GetExecutingAssembly()); }