protected void Application_Start() { CloudStorageAccount.SetConfigurationSettingPublisher((configName, configSetter) => { string configuration = RoleEnvironment.IsAvailable ? RoleEnvironment.GetConfigurationSettingValue(configName) : ConfigurationManager.AppSettings[configName]; configSetter(configuration); }); // Setup AutoFac var builder = new ContainerBuilder(); this.DependencySetup(builder); var container = builder.Build(); DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); // Setup WCF Web API Config var resolver = new AutofacDependencyResolver(container); GlobalConfiguration.Configuration.ServiceResolver.SetResolver( t => resolver.GetService(t), t => resolver.GetServices(t)); AreaRegistration.RegisterAllAreas(); RegisterGlobalFilters(GlobalFilters.Filters); RegisterRoutes(RouteTable.Routes); FederatedAuthentication.ServiceConfigurationCreated += this.OnServiceConfigurationCreated; // Call Initializers var initializers = DependencyResolver.Current.GetServices<IStorageInitializer>(); foreach (var initializer in initializers) { initializer.Initialize(); } }
private static void SetAutofacWebAPIServices() { var builder = new ContainerBuilder(); builder.RegisterType<DefaultCommandBus>().As<ICommandBus>().InstancePerHttpRequest(); builder.RegisterType<UnitOfWork>().As<IUnitOfWork>().InstancePerHttpRequest(); builder.RegisterType<DatabaseFactory>().As<IDatabaseFactory>().InstancePerHttpRequest(); builder.RegisterAssemblyTypes(typeof(CategoryRepository).Assembly) .Where(t => t.Name.EndsWith("Repository")) .AsImplementedInterfaces().InstancePerHttpRequest(); var services = Assembly.Load("EFMVC.Domain"); builder.RegisterAssemblyTypes(services) .AsClosedTypesOf(typeof(ICommandHandler<>)).InstancePerHttpRequest(); builder.RegisterAssemblyTypes(services) .AsClosedTypesOf(typeof(IValidationHandler<>)).InstancePerHttpRequest(); builder.RegisterApiControllers(Assembly.GetExecutingAssembly()); IContainer container = builder.Build(); var resolver = new AutofacDependencyResolver(container); GlobalConfiguration.Configuration.ServiceResolver.SetResolver( t => resolver.GetService(t), t => resolver.GetServices(t)); }
public void GetServicesReturnsRegisteredService() { var builder = new ContainerBuilder(); builder.Register(c => new object()); var container = builder.Build(); var lifetimeScopeProvider = new StubLifetimeScopeProvider(container); var resolver = new AutofacDependencyResolver(container, lifetimeScopeProvider); var services = resolver.GetServices(typeof(object)); Assert.That(services.Count(), Is.EqualTo(1)); }
public void GetServicesReturnsEmptyEnumerableForUnregisteredService() { var container = new ContainerBuilder().Build(); var lifetimeScopeProvider = new StubLifetimeScopeProvider(container); var resolver = new AutofacDependencyResolver(container, lifetimeScopeProvider); var services = resolver.GetServices(typeof(object)); Assert.That(services.Count(), Is.EqualTo(0)); }
public void ConfigurationActionInvokedForNestedLifetime() { var container = new ContainerBuilder().Build(); Action<ContainerBuilder> configurationAction = builder => builder.Register(c => new object()); var lifetimeScopeProvider = new StubLifetimeScopeProvider(container); var resolver = new AutofacDependencyResolver(container, lifetimeScopeProvider, configurationAction); var service = resolver.GetService(typeof(object)); var services = resolver.GetServices(typeof(object)); Assert.That(service, Is.Not.Null); Assert.That(services.Count(), Is.EqualTo(1)); }