public static void Build(this ExtensionBuilder builder)
 {
     Builder.Service.AddSingleton <IConfiguration>(builder.ConfigurationBuilder.Build());
     Builder.ContainerBuilder.Populate(Builder.Service);
     Builder.ContainerBuilder.RegisterType <ResolveContext>().As <IResolveContext>().InstancePerLifetimeScope();
     Builder.ServiceProvider = Builder.Service.BuildServiceProvider();
     Builder.Container       = Builder.ContainerBuilder.Build();
 }
 public static ExtensionBuilder CreateInstance()
 {
     Builder = new ExtensionBuilder
     {
         Service = new ServiceCollection(),
         ConfigurationBuilder = new ConfigurationBuilder(),
         ContainerBuilder     = new ContainerBuilder()
     };
     return(Builder);
 }
 public static ExtensionBuilder ConfigureConfiguration(this ExtensionBuilder extensionBuilder, Action <IConfigurationBuilder> configureBuilder)
 {
     configureBuilder(Builder.ConfigurationBuilder);
     return(extensionBuilder);
 }
 public static ExtensionBuilder ConfigureContainer(this ExtensionBuilder extensionBuilder, Action <ContainerBuilder> builder)
 {
     builder(Builder.ContainerBuilder);
     return(extensionBuilder);
 }
 public static ExtensionBuilder ConfigureServices(this ExtensionBuilder extensionBuilder, Action <IServiceCollection> service)
 {
     service(Builder.Service);
     return(extensionBuilder);
 }