public static IContainer ConfigureContainer(this IAppBuilder app, HttpConfiguration config, IReadOnlyCollection<Assembly> applicationAssemblies, IEnumerable<Module> dependencyModules, WebOption webOption) { var builder = new ContainerBuilder(); foreach (var module in dependencyModules) builder.RegisterModule(module); var assemblies = applicationAssemblies.ToArray(); ConfigureContainer(builder, webOption, assemblies); if (webOption.UseApi) builder.RegisterWebApiFilterProvider(config); var container = builder.Build(); if (webOption.UseApi) config.DependencyResolver = new AutofacWebApiDependencyResolver(container); if (webOption.UseMvc) DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); app.UseAutofacMiddleware(container); if (webOption.UseApi) app.UseAutofacWebApi(config); return container; }
public void Configuration(IAppBuilder app) { var option = new WebOption { UseMvc = true, UseApi = true }; Configure(app, option); }
public static void ConfigureContainer(ContainerBuilder builder, WebOption webOption, params Assembly[] applicationAssemblies) { var assemblies = applicationAssemblies.ToArray(); if (webOption.UseMvc) { builder.RegisterControllers(assemblies); builder.RegisterFilterProvider(); builder.RegisterSource(new ViewRegistrationSource()); } if (webOption.UseApi) builder.RegisterApiControllers(assemblies); }
protected virtual void Configure(IAppBuilder app, WebOption webOption) { HttpConfiguration config = null; if (webOption.UseMvc) { ConfigureMvcRoutes(RouteTable.Routes); ConfigureMvcFilters(GlobalFilters.Filters); ConfigureMvcViewEngines(ViewEngines.Engines); } if (webOption.UseApi) { config = new HttpConfiguration(); ConfigureApiRoutes(config); ConfigureApiFilters(config); ConfigureApiConventions(config); app.UseWebApi(config); } ConfigureValidation(); ConfigureContainer(app, config, webOption); }
public static IContainer ConfigureContainer(this IAppBuilder app, HttpConfiguration config, IReadOnlyCollection<Module> dependencyModules, WebOption webOption) { var assemblies = new[] { Assembly.GetCallingAssembly() }; return app.ConfigureContainer(config, assemblies, dependencyModules, webOption); }
protected override void ConfigureContainer(IAppBuilder app, HttpConfiguration config, WebOption webOption) { var modules = GetModules(); app.ConfigureContainer(config, modules, webOption); }
protected virtual void ConfigureContainer(IAppBuilder app, HttpConfiguration config, WebOption webOption) { }