static void ConfigDi(IWindsorContainer container) { CachingRuntime.RegisterDefaultTypes(( (t1, t2, isTransient) => { if (isTransient) { container.Register(Component.For(t1).ImplementedBy(t2).LifestyleTransient()); } else { container.Register(Component.For(t1).ImplementedBy(t2).LifestyleSingleton()); } })); container.Register( Component.For <CarController>().ImplementedBy <CarController>() .LifestyleTransient(), Component.For <ITimedETagExtractor>().ImplementedBy <CarAndCollectionETagExtractor>() .LifestyleSingleton().IsDefault(), Component.For <ITimedETagQueryProvider>().ImplementedBy <TimedETagQueryCarRepository>() .LifestyleSingleton().IsDefault(), Component.For <ITimedETagExtractor <Car> >().ImplementedBy <CarETagExtractor>() .LifestyleSingleton().IsDefault(), Component.For <ITimedETagQueryProvider <Car> >().ImplementedBy <CarTimedETagQueryCarRepository>() .LifestyleSingleton().IsDefault(), Component.For <ICarRepository>().Instance(InMemoryCarRepository.Instance), Component.For <ISerialiser>().ImplementedBy <IgnoreLoopJsonSerialiser>().IsDefault() // demonstrate how to replace ); }
static void ConfigDi(IWindsorContainer container) { CachingRuntime.RegisterDefaultTypes(( (t1, t2, isTransient) => { if (isTransient) { container.Register(Component.For(t1).ImplementedBy(t2).LifestyleTransient()); } else { container.Register(Component.For(t1).ImplementedBy(t2).LifestyleSingleton()); } })); container.Register( Component.For <CarController>().ImplementedBy <CarController>() .LifestyleTransient(), Component.For <ITimedETagExtractor <Car> >().ImplementedBy <CarETagExtractor>() .LifestyleSingleton(), Component.For <ITimedETagExtractor <IEnumerable <Car> > >().ImplementedBy <CarCollectionETagExtractor>() .LifestyleSingleton(), Component.For <ITimedETagQueryProvider>().ImplementedBy <TimedETagQueryCarRepository>() .LifestyleSingleton(), Component.For <ICarRepository>().Instance(InMemoryCarRepository.Instance) ); }