Example #1
0
 public static IWebHostBuilder UseModularStartup <TStartup>(this IWebHostBuilder hostBuilder)
     where TStartup : class
 {
     return(hostBuilder
            // UserSecrets not loaded when using surrogate startup class, load explicitly from TStartup.Assembly
            .ConfigureAppConfiguration((ctx, config) =>
                                       config.AddUserSecrets(typeof(TStartup).GetTypeInfo().Assembly, optional: true))
            .UseStartup(ModularStartup.Create <TStartup>()));
 }
Example #2
0
 // Additional configuration is required to successfully run gRPC on macOS.
 // For instructions on how to configure Kestrel and gRPC clients on macOS, visit https://go.microsoft.com/fwlink/?linkid=2099682
 public static IHostBuilder CreateHostBuilder(string[] args) =>
 Host.CreateDefaultBuilder(args)
 .ConfigureWebHostDefaults(webBuilder => {
     webBuilder.ConfigureKestrel(options => {
         options.ListenLocalhost(5000, listenOptions =>
         {
             listenOptions.Protocols = HttpProtocols.Http2;
         });
     });
     webBuilder.UseStartup(ModularStartup.Create <Startup>());
 });
Example #3
0
        public ModularStartupActivator(IConfiguration configuration)
        {
            Configuration = configuration;
            var ci = StartupType !.GetConstructor(new[] { typeof(IConfiguration) });

            if (ci != null)
            {
                Instance = (ModularStartup)ci.Invoke(new[] { Configuration });
            }
            else
            {
                ci = StartupType.GetConstructor(Type.EmptyTypes);
                if (ci != null)
                {
                    Instance = (ModularStartup)ci.Invoke(TypeConstants.EmptyObjectArray);
                    Instance.Configuration = configuration;
                }
                else
                {
                    throw new NotSupportedException($"{StartupType.Name} does not have a {StartupType.Name}(IConfiguration) constructor");
                }
            }
        }
Example #4
0
 public static void Main(string[] args)
 {
     ModularStartup.Init(typeof(Startup));
     BuildWebHost(args).Run();
 }