예제 #1
0
 private void Register(InitializationTaskContext context, Type matchingType)
 {
     var registration = context.Builder.RegisterType(matchingType);
     foreach (var policy in conventions.Where(p => p.IsMatch(matchingType)))
     {
         policy.Apply(registration, matchingType);
     }
 }
예제 #2
0
        public void Execute(InitializationTaskContext context)
        {
            var matchingTypes = locator.GetDependencies(conventions);

            foreach (var matchingType in matchingTypes)
            {
                Register(context, matchingType);
            }
        }
예제 #3
0
파일: Life.cs 프로젝트: pekkah/ItIsAlive
        private static void ConfigureApis(InitializationTaskContext context)
        {
            var configuration = GlobalConfiguration.Configuration;
            configuration.MessageHandlers.Insert(0, new WebApiUnitOfWorkHandler());

            configuration.Routes.MapHttpRoute("contacts", "api/contacts", new {controller = "Contacts"});

            context.Builder.RegisterApiControllers(typeof (ContactsController).Assembly);
            context.Builder.RegisterWebApiFilterProvider(configuration);
        }
예제 #4
0
        public IContainer Initialize()
        {
            var builder = new ContainerBuilder();

            var context = new InitializationTaskContext(builder);

            foreach (var task in Tasks)
            {
                task.Execute(context);
            }

            return container = builder.Build();
        }
예제 #5
0
        public void Execute(InitializationTaskContext context)
        {
            var builder = context.Builder;

            // register session factory as singleton
            builder.Register(CreateSessionFactory).As<ISessionFactory>().SingleInstance().OnActivated(
                handler => Trace.TraceInformation("Session factory activated")).OnRelease(
                    release => Trace.TraceInformation("Session factory released."));

            builder.Register(GetStatelessSession).As<IStatelessSession>().InstancePerLifetimeScope().OnActivated(
                handler => Trace.TraceInformation("Stateless session factory activated")).OnRelease(
                    release => Trace.TraceInformation("Stateless session released."));
        }
예제 #6
0
        public void Execute(InitializationTaskContext context)
        {
            // register session so that each lifetime scope will have their own instance
            var registration =
                context.Builder.Register(GetSession).As<ISession>().InstancePerLifetimeScope().OnActivated(
                    handler => Trace.TraceInformation("Session activated")).OnRelease(
                        release => Trace.TraceInformation("Session released."));

            // allow modification of the session registration
            if (modifySessionRegistration != null)
            {
                modifySessionRegistration(registration);
            }
        }
예제 #7
0
 public void Execute(InitializationTaskContext context)
 {
     context.Builder.RegisterType<ResolveSessionFactoryOnce>().AsImplementedInterfaces();
 }
예제 #8
0
파일: Life.cs 프로젝트: pekkah/ItIsAlive
        private static void ConfigureRoutes(InitializationTaskContext context)
        {
            var routes = RouteTable.Routes;

            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                "Default",
                "{controller}/{action}/{id}",
                new {controller = "Home", action = "Index", id = UrlParameter.Optional});

            context.Builder.RegisterControllers(typeof (ContactsController).Assembly);
            context.Builder.RegisterFilterProvider();
        }