using System; using System.Collections.Generic; using Microsoft.AspNet.Builder; using Microsoft.AspNet.Hosting; using Microsoft.AspNet.Http; using Microsoft.Extensions.DependencyInjection; // Note that this sample will not run. It is only here to illustrate usage patterns. namespace SampleStartups { public class StartupExternallyControlled { private IWebApplication _application; private readonly List _urls = new List(); // This method gets called by the runtime. Use this method to add services to the container. // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=398940 public void ConfigureServices(IServiceCollection services) { } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app) { app.Run(async (context) => { await context.Response.WriteAsync("Hello World!"); }); } public StartupExternallyControlled() { } public void Start() { _application = new WebApplicationBuilder() .UseStartup() .Start(_urls.ToArray()); } public void Stop() { _application.Dispose(); } public void AddUrl(string url) { _urls.Add(url); } } }