Lifetime <T> DoCreateLifetime() { var lifetime = LifetimeProvider.GetLifetime <T>(); if (!(lifetime is SingletonLifetime <T>)) { throw new InvalidOperationException(string.Format(CultureInfo.InvariantCulture, Resources.InstanceCanOnlyBeRegisteredInSingletonLifetime, typeof(SingletonLifetime <>).ToFullTypeName(), lifetime.GetType().ToFullTypeName())); } return(lifetime); }
public IContainer BuildContainer() { var builder = new ContainerBuilder(); var lifetimeProvider = new LifetimeProvider(); // Register modules builder.RegisterModule(new SqlModule(lifetimeProvider)); builder.RegisterModule(new AzureModule(lifetimeProvider)); // Register MVC controllers builder.RegisterControllers(this.GetType().Assembly); // Register slug generator builder.RegisterType<SlugGenerator>().AsImplementedInterfaces().InstancePerDependency(); // Register configuration builder.RegisterType<AppConfigConfiguration>().As<IConfiguration>().InstancePerHttpRequest(); // Register GitHub client builder.Register<IGitHubClient>(c => new GitHubClient(new ProductHeaderValue("Hadouken"))); return builder.Build(); }