Uso de la clase de inicio en la aplicación de consola ASP.NET5
¿Es posible que una aplicación de consola ASP.NET 5-beta4 (creada a partir de la plantilla de proyecto de la consola ASP.NET en VS2015) utilice elStartup
clase para manejar el registro de servicios y configurar detalles de configuración?
He intentado crear un típicoStartup
clase, pero parece que nunca se llama cuando se ejecuta la aplicación de consola a través dednx . run
o dentro de Visual Studio 2015.
Startup.cs
es más o menos:
public class Startup
{
public Startup(IHostingEnvironment env)
{
Configuration configuration = new Configuration();
configuration.AddJsonFile("config.json");
configuration.AddJsonFile("config.{env.EnvironmentName.ToLower()}.json", optional: true);
configuration.AddEnvironmentVariables();
this.Configuration = configuration;
}
public void ConfigureServices(IServiceCollection services)
{
services.Configure<Settings>(Configuration.GetSubKey("Settings"));
services.AddEntityFramework()
.AddSqlServer()
.AddDbContext<ApplicationContext>(options => options.UseSqlServer(this.Configuration["Data:DefaultConnection:ConnectionString"]));
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(minLevel: LogLevel.Warning);
}
}
He intentado crear manualmente elStartup
clase en miMain
método, pero esta no parece ser la solución correcta y hasta ahora no me ha permitido configurar los servicios.
Supongo que hay alguna forma de crear unHostingContext
eso no inicia un servidor web pero mantendrá viva la aplicación de consola. Algo en la línea de:
HostingContext context = new HostingContext()
{
ApplicationName = "AppName"
};
using (new HostingEngine().Start(context))
{
// console code
}
Sin embargo, hasta ahora, la única forma en que puedo hacer que esto funcione es si configuro elHostingContext.ServerFactoryLocation
aMicrosoft.AspNet.Server.WebListener
, que inicia el servidor web.