Использование класса запуска в консольном приложении ASP.NET5
Возможно ли для консольного приложения ASP.NET 5-бета4 (созданного из шаблона проекта консоли ASP.NET в VS2015) использоватьStartup
класс для обработки услуг регистрации и настройки деталей конфигурации?
Я пытался создать типичныйStartup
класс, но он никогда не вызывается при запуске консольного приложения черезdnx . run
или внутри Visual Studio 2015.
Startup.cs
довольно много:
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);
}
}
Я пытался вручную создатьStartup
класс в моемMain
метод, но это не похоже на правильное решение и до сих пор не позволило мне настроить службы.
Я предполагаю, что есть какой-то способ для меня создатьHostingContext
он не запускает веб-сервер, но поддерживает консольное приложение. Что-то вроде:
HostingContext context = new HostingContext()
{
ApplicationName = "AppName"
};
using (new HostingEngine().Start(context))
{
// console code
}
Однако до сих пор единственный способ заставить это работать, если я установлюHostingContext.ServerFactoryLocation
вMicrosoft.AspNet.Server.WebListener
, который запускает веб-сервер.