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.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage