Usando a classe Startup no aplicativo de console do ASP.NET5
É possível que um aplicativo de console do ASP.NET 5-beta4 (criado a partir do modelo de projeto do ASP.NET Console no VS2015) use o comandoStartup
classe para gerenciar serviços de registro e definir detalhes de configuração?
Eu tentei criar um típicoStartup
, mas nunca parece ser chamado ao executar o aplicativo de console viadnx . run
ou dentro do Visual Studio 2015.
Startup.cs
é praticamente:
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);
}
}
Eu tentei criar manualmente oStartup
aula na minhaMain
método, mas isso não parece a solução certa e até agora não me permitiu configurar os serviços.
Estou assumindo que há uma maneira de criar umHostingContext
que não inicia um servidor Web, mas mantém o aplicativo do console ativo. Algo ao longo das linhas de:
HostingContext context = new HostingContext()
{
ApplicationName = "AppName"
};
using (new HostingEngine().Start(context))
{
// console code
}
No entanto, até agora, a única maneira de fazer isso funcionar é se eu definir oHostingContext.ServerFactoryLocation
paraMicrosoft.AspNet.Server.WebListener
, que inicia o servidor da web.