public void Install(IWindsorContainer container, Castle.MicroKernel.IConfigurationStore store)
{
container
.AddFacility<ControllerRegisterFacility>()
.AddFacility<OnCreateFacility>()
.AddFacility<EventWiringFacility>()
.Register(Component.For<IPostService>()
.ImplementedBy<PostService>())
.Register(Component.For<IMailService>()
.ImplementedBy<MailService>())
.Register(Component.For<IFriendlyUrlGenerator>()
.ImplementedBy<FriendlyUrlGenerator>())
.Register(AllTypes.Of(typeof(IValidatorBase<>))
.FromAssemblyNamed("BlogSharp.Model")
.WithService.FromInterface(typeof(IValidatorBase<>))
.Configure(x => x.LifeStyle.Transient))
.Register(AllTypes.Of<IController>()
.FromAssemblyNamed("BlogSharp.Web").Configure(x => x.LifeStyle.Transient))
.Register(Component.For<IExtendedControllerFactory>()
.ImplementedBy<WindsorControllerFactory>())
.Register(AllTypes.Of<IStartupInstaller>()
.FromAssemblyNamed("BlogSharp.Core.Impl")
.WithService.FirstInterface())
.Register(AllTypes.Of<IHttpModule>()
.FromAssemblyNamed("BlogSharp.Core.Impl"))
.Register(Component.For<BlogContextProvider>()
.ImplementedBy<WebBlogContextProvider>());
}