Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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();
        }