Verwenden der Startup-Klasse in der ASP.NET5-Konsolenanwendung
Ist es einer ASP.NET 5-Beta4-Konsolenanwendung (die aus der ASP.NET Console-Projektvorlage in VS2015 erstellt wurde) möglich, das @ zu verwendeStartup
Klasse für die Registrierung von Diensten und das Einrichten von Konfigurationsdetails?
Ich habe versucht, ein typisches @ zu erstellStartup
class, aber es scheint nie aufgerufen zu werden, wenn die Konsolenanwendung über @ ausgeführt widnx . run
oder in Visual Studio 2015.
Startup.cs
ist so ziemlich:
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);
}
}
Ich habe versucht, das @ manuell zu erstellStartup
Klasse in meinemMain
-Methode, aber dies scheint nicht die richtige Lösung zu sein und hat mir bisher nicht erlaubt, die Dienste zu konfigurieren.
Ich gehe davon aus, dass es für mich eine Möglichkeit gibt, ein @ zu erstelleHostingContext
startet keinen Webserver, hält aber die Konsolenanwendung am Leben. Etwas in der Art von:
HostingContext context = new HostingContext()
{
ApplicationName = "AppName"
};
using (new HostingEngine().Start(context))
{
// console code
}
Aber bis jetzt kann ich das nur zum Laufen bringen, wenn ich das @ setzHostingContext.ServerFactoryLocation
zuMicrosoft.AspNet.Server.WebListener
, wodurch der Webserver gestartet wird.