public static ApplicationBuilder <R> UseStartup <T>(params string[] args) where T : BaseStartup { var configurationBuilder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json", optional: true) .AddEnvironmentVariables(prefix: "PREFIX_") .AddCommandLine(args); ConstructorInfo ctor = typeof(T).GetConstructors().First(); ObjectActivator <T> createdActivator = GetActivator <T>(ctor); //create an instance: BaseStartup startup = createdActivator(configurationBuilder.Build()); return(new ApplicationBuilder <R>(startup)); }
private ApplicationBuilder(BaseStartup startup) { this.startup = startup; }