public virtual IApplication Build() { IContainer container = null; var host = new Application(BeforeRunners, Runners); ContainerBuilder.Register(x => host).As <IApplication>().SingleInstance(); ContainerBuilder.Register(x => container).As <IContainer>().SingleInstance(); ContainerBuilder.RegisterType <ConsoleLogger>().As <ILogger>().SingleInstance(); ComponentRegisters.ForEach(x => { x(ContainerBuilder); }); container = ContainerBuilder.Build(); Initializers.ForEach(x => { x(container); }); host.Container = container; return(host); }
public virtual T AddComponent(Action <ContainerBuilder> componentRegister) { ComponentRegisters.Add(componentRegister); return(this as T); }