예제 #1
0
        public static IWindsorContainer CreateContainer()
        {
            var container = new WindsorContainer();

            container.AddFacility <StartableFacility>();
            container.Install(FromAssembly.InThisApplication());

            container.Register(
                AllTypes.FromThisAssembly()
                .BasedOn <ApiController>()
                .LifestyleTransient());
            container.Register(
                AllTypes.FromThisAssembly()
                .BasedOn <IHub>()
                .LifestyleSingleton());
            container.Register(
                Component.For <ITraceWriter>()
                .ImplementedBy <TraceWriter>()
                .LifestyleSingleton());

            container.Register(
                AllTypes.FromThisAssembly()
                .Pick().If(Component.IsCastleComponent));
            return(container);
        }
예제 #2
0
 public void Install(IWindsorContainer container, IConfigurationStore store)
 {
     container.Register(AllTypes.FromThisAssembly()
                        .Where(type => type.Name.EndsWith("Repository"))
                        .WithServiceDefaultInterfaces()
                        .LifestyleTransient());
 }
예제 #3
0
 public void Install(IWindsorContainer container, IConfigurationStore store)
 {
     container.Register(AllTypes.FromThisAssembly().Pick()
                        .If(Component.IsInSameNamespaceAs <FormsAuthenticationService>())
                        .Configure(c => c.LifeStyle.Transient)
                        .WithService.DefaultInterface());
 }
예제 #4
0
 public void Install(IWindsorContainer container, IConfigurationStore store)
 {
     container.Register(AllTypes.FromThisAssembly()
                        .Pick().If(t => t.Name.EndsWith("Controller"))
                        .Configure(configurer => configurer.Named(configurer.Implementation.Name))
                        .LifestylePerWebRequest());
 }
예제 #5
0
        public void Can_filter_types_based_on_custom_attribute()
        {
            container.Register(AllTypes.FromThisAssembly().Where(Component.HasAttribute <UserAttribute>));

            container.Resolve <HasUserAttributeRegister>();
            container.Resolve <HasUserAttributeNonRegister>();
        }
예제 #6
0
        public void Install(Castle.Windsor.IWindsorContainer container, Castle.MicroKernel.SubSystems.Configuration.IConfigurationStore store)
        {
            container.Register(Classes.FromThisAssembly()
                               .BasedOn <ApiController>()
                               .LifestylePerWebRequest(),

                               Component.For <ILogService>()
                               .ImplementedBy <LogService>()
                               .LifeStyle.PerWebRequest,

                               Component.For <IDatabaseFactory>()
                               .ImplementedBy <DatabaseFactory>()
                               .LifeStyle.PerWebRequest,

                               Component.For <IUnitOfWork>()
                               .ImplementedBy <UnitOfWork>()
                               .LifeStyle.PerWebRequest,

                               AllTypes.FromThisAssembly().BasedOn <IHttpController>().LifestyleTransient()//,


                               );
            container.Register(Classes.FromAssemblyNamed("Oc.Carbon.ServiceLayer").Where(type => type.Name.EndsWith("Service")).WithServiceAllInterfaces().LifestylePerWebRequest());
            container.Register(Classes.FromAssemblyNamed("Oc.Carbon.Data").Where(type => type.Name.EndsWith("Repository")).WithServiceAllInterfaces().LifestylePerWebRequest());
        }
예제 #7
0
        public void Install(IWindsorContainer container, IConfigurationStore store)
        {
            container.Register(Classes.FromThisAssembly()
                               .BasedOn <IController>()
                               .LifestyleTransient());

            container.Register(

                //Component.For<IQueryableUnitOfWork, UnitOfWork>().ImplementedBy<UnitOfWork>(),

                //Component.For<IProfileRepository, ProfileRepository>().ImplementedBy<ProfileRepository>(),

                //Component.For<IAddressRepository, AddressRepository>().ImplementedBy<AddressRepository>(),

                //Component.For<IAddressTypeRepository, AddressTypeRepository>().ImplementedBy<AddressTypeRepository>(),

                //Component.For<IPhoneTypeRepository, PhoneTypeRepository>().ImplementedBy<PhoneTypeRepository>(),

                //Component.For<IPhoneRepository, PhoneRepository>().ImplementedBy<PhoneRepository>(),

                //Component.For<IAnswersRepository, AnswersRepository>().ImplementedBy<AnswersRepository>(),

                //Component.For<IQuestionsRepository, QuestionsRepository>().ImplementedBy<QuestionsRepository>(),//.LifestyleSingleton(),

                //Component.For<ISecurityRepository, SecurityRepository>().ImplementedBy<SecurityRepository>(),

                //Component.For<ISecurityPriceRepository, SecurityPriceRepository>().ImplementedBy<SecurityPriceRepository>(),

                //Component.For<IDailyPriceRepository, DailyPriceRepository>().ImplementedBy<DailyPriceRepository>(),

                //Component.For<ICommentsRepository, CommentsRepository>().ImplementedBy<CommentsRepository>(),

                //Component.For<ITweetRepository, TweetRepository>().ImplementedBy<TweetRepository>(),

                //Component.For<IUserRepository, UserRepository>().ImplementedBy<UserRepository>(),

                ////Component.For<ILoggerManager>().ImplementedBy<LoggerManager>(),

                //Component.For<IRiskManager>().ImplementedBy<RiskManager>(),

                //Component.For<ISecurityManager>().ImplementedBy<SecurityManager>(),

                //Component.For<ICommentManager>().ImplementedBy<CommentManager>(),

                //Component.For<ITweetManager>().ImplementedBy<TweetManager>(),

                Component.For <IUserManager>().ImplementedBy <UserManager>(),

                Component.For <IRouteManager>().ImplementedBy <RouteManager>(),

                Component.For <IGroupManager>().ImplementedBy <GroupManager>(),

                AllTypes.FromThisAssembly().BasedOn <IHttpController>().LifestyleTransient()

                )
            .AddFacility <LoggingFacility>(f => f.UseLog4Net());

            //LoggerFactory.SetCurrent(new TraceSourceLogFactory());
            //EntityValidatorFactory.SetCurrent(new DataAnnotationsEntityValidatorFactory());
        }
예제 #8
0
 private BasedOnDescriptor FindControllers()
 {
     return(AllTypes.FromThisAssembly()
            .BasedOn <IController>()
            .If(Component.IsInSameNamespaceAs <HomeController>())
            .If(t => t.Name.EndsWith("Controller")));
 }
예제 #9
0
        public void Attribute_registers_type_properly()
        {
            Container.Register(AllTypes.FromThisAssembly().Where(Component.IsCastleComponent));

            var handlers = Container.Kernel.GetHandlers(typeof(ISimpleService));

            Assert.IsNotEmpty(handlers);
        }
예제 #10
0
        public void Attribute_key_can_be_overwritten()
        {
            Container.Register(AllTypes.FromThisAssembly().Where(Component.IsCastleComponent)
                               .ConfigureFor <HasKey>(k => k.Named("changedKey")));

            Assert.IsNull(Container.Kernel.GetHandler("hasKey"));
            Assert.IsNotNull(Container.Kernel.GetHandler("changedKey"));
        }
예제 #11
0
 public void Install(IWindsorContainer container, IConfigurationStore store)
 {
     container.Register(
         AllTypes
         .FromThisAssembly()
         .BasedOn <IService>()
         .Configure(c => c.LifeStyle.Transient.Named(c.Implementation.Name)));
 }
예제 #12
0
        public void DefaultInterface_can_match_multiple_types()
        {
            Kernel.Register(AllTypes.FromThisAssembly().Where(t => t == typeof(CommonSub1Impl)).WithService.DefaultInterface());
            var one = Kernel.Resolve <ICommon>();
            var two = Kernel.Resolve <ICommonSub1>();

            Assert.AreSame(one, two);
        }
예제 #13
0
 public void Install(IWindsorContainer container, IConfigurationStore store)
 {
     container.Register(
         AllTypes.FromThisAssembly()
         .BasedOn <IStartable>()
         .WithService.FirstInterface()
         );
 }
예제 #14
0
 public void Install(IWindsorContainer container, IConfigurationStore store)
 {
     container.Register(
         AllTypes.FromThisAssembly()
         .BasedOn(containerType)
         .Configure(config => config.LifeStyle.PerWebRequest)
         );
 }
예제 #15
0
 public void Install(IWindsorContainer container, IConfigurationStore store)
 {
     container.Register(
         AllTypes.FromThisAssembly()
         .Where(x => x.Namespace.StartsWith("FakeVader.Core.Services"))
         .WithService.DefaultInterface()
         );
 }
예제 #16
0
 public void Install(Castle.Windsor.IWindsorContainer container, Castle.MicroKernel.SubSystems.Configuration.IConfigurationStore store)
 {
     container.Register(AllTypes.FromThisAssembly()
                        .Pick().If(t => t.Name.EndsWith("Controller"))
                        .Configure(configurer => configurer.Named(configurer.Implementation.Name))
                        //.LifestylePerWebRequest()
                        .LifestyleTransient());
 }
예제 #17
0
 public void Install(IWindsorContainer container, IConfigurationStore store)
 {
     container.Register(AllTypes.FromThisAssembly()
                        .Where(Component.IsInSameNamespaceAs <EventRepository>())
                        .WithService.DefaultInterface()
                        .Configure(c => c.LifeStyle.Transient
                                   .DependsOn(new { pageSize = 20 })));
 }
예제 #18
0
 public void Install(IWindsorContainer container, IConfigurationStore store)
 {
     container.Register(
         AllTypes.FromThisAssembly().BasedOn <IController>().Configure(c => c.LifeStyle.Transient.Named(c.Implementation.Name)),
         Component.For <IPlugin>().ImplementedBy <TestingSystemPlugin>().LifeStyle.Is(Castle.Core.LifestyleType.Singleton),
         Component.For <ITestingService>().ImplementedBy <TestingService>().LifeStyle.Is(Castle.Core.LifestyleType.Singleton),
         Component.For <IMlcProxy>().ImplementedBy <MlcProxy>().LifeStyle.Is(Castle.Core.LifestyleType.Singleton));
 }
        public void Registreting_by_namespace_with_subnamespaces()
        {
            Kernel.Register(
                AllTypes.FromThisAssembly()
                .Where(Component.IsInNamespace("RootNamespace", includeSubnamespaces: true)));

            Assert.AreEqual(2, ComponentsCount());
        }
예제 #20
0
 public void Install(IWindsorContainer container, IConfigurationStore store)
 {
     container.Register(
         AllTypes.FromThisAssembly()
         .BasedOn(typeof(IHandle <>)).WithService.FromInterface()
         .Configure(c => c.LifeStyle.Transient)
         );
 }
        public void Registreting_by_namespace_with_subnamespaces_properly_filters_out_namespaces_that_have_common_prefix()
        {
            Kernel.Register(
                AllTypes.FromThisAssembly()
                .Where(Component.IsInNamespace("RootNamespace", includeSubnamespaces: true)));

            Assert.IsFalse(Components().Any(c => c.ComponentModel.Services.Any(s => s.Namespace == "RootNamespaceEx")));
        }
예제 #22
0
 public void Install(IWindsorContainer container, IConfigurationStore store)
 {
     container.Register(
         AllTypes.FromThisAssembly()
         .Pick()
         .WithService.DefaultInterfaces()
         .LifestyleTransient());
 }
예제 #23
0
 public void Install(IWindsorContainer container, IConfigurationStore store)
 {
     container.Register(
         AllTypes.FromThisAssembly().BasedOn <IFoo>(),
         Classes.FromThisAssembly().BasedOn <IFoo>(),
         Castle.MicroKernel.Registration.Types.FromThisAssembly().BasedOn <IFoo>()
         );
 }
예제 #24
0
 public void Install(IWindsorContainer container, IConfigurationStore store)
 {
     container.Register(
         AllTypes.FromThisAssembly().Where(Component.HasAttribute <MyAttribute>),
         Classes.FromThisAssembly().Where(Component.HasAttribute <MyAttribute>),
         Castle.MicroKernel.Registration.Types.FromThisAssembly().Where(Component.HasAttribute <MyAttribute>)
         );
 }
예제 #25
0
 public void Install(IWindsorContainer container, IConfigurationStore store)
 {
     container.Register(
         AllTypes.FromThisAssembly()
         .BasedOn <IController>()
         .Configure(registration => registration.LifeStyle.Transient)
         );
 }
예제 #26
0
 public CastleControllerFactory(IWindsorContainer container)
 {
     _container = container;
     _container.Register(
         AllTypes.FromThisAssembly()
         .BasedOn <IController>()
         .Configure(c => c.LifestyleTransient()));
 }
예제 #27
0
 public void Install(IWindsorContainer container, IConfigurationStore store)
 {
     container.Register(
         AllTypes.FromThisAssembly().InNamespace("SomeNamespace", false),
         Classes.FromThisAssembly().InNamespace("SomeNamespace", false),
         Castle.MicroKernel.Registration.Types.FromThisAssembly().InNamespace("SomeNamespace", false)
         );
 }
 public void Install(IWindsorContainer container, IConfigurationStore store)
 {
     container.Register(
         AllTypes.FromThisAssembly().Where(Component.IsInSameNamespaceAs <IInSomeNamespace>()),
         Classes.FromThisAssembly().Where(Component.IsInSameNamespaceAs <IInSomeNamespace>()),
         Castle.MicroKernel.Registration.Types.FromThisAssembly().Where(Component.IsInSameNamespaceAs <IInSomeNamespace>())
         );
 }
예제 #29
0
 public void Install(IWindsorContainer container, IConfigurationStore store)
 {
     container.Register(AllTypes.FromThisAssembly()
                        .BasedOn <IController>()
                        .If(Component.IsInSameNamespaceAs <HomeController>())
                        .If(t => t.Name.EndsWith("Controller"))
                        .Configure(c => c.LifeStyle.Transient));
 }
예제 #30
0
        public void Install(IWindsorContainer container, IConfigurationStore store)
        {
            container.Register(
                Component.For <IWindowManager>().ImplementedBy <WindowManager>().LifeStyle.Is(LifestyleType.Singleton));
            container.Register(
                Component.For <IEventAggregator>().ImplementedBy <EventAggregator>().LifeStyle.Is(LifestyleType.Singleton));

            container.Register(AllTypes.FromThisAssembly().Pick());
        }