2017-11-10 2 views
0

Ich habe eine Konsolenanwendung, die eine Web-API hostet. Jetzt möchte ich eine bereits konfigurierte IServiceCollection und ILoggerFactory an meine Startup übergeben.Übergeben Sie vorhandene IServiceCollection und ILoggerFactory zu Start in .NET Core 2

var serviceCollection = new ServiceCollection(); 
// Do some registrations here... 

var loggerFactory = new LoggerFactory(); // Actually not created this way. Just an example. 
loggerFactory.AddSomeStuff(); 

var host = WebHost.CreateDefaultBuilder() 
    .UseKestrel() 
    .ConfigureServices(collection => 
    { 
     // I want to use my already configured serviceCollection. 
     // I do not want to configure it here... 
    }) 
    .ConfigureLogging((hostingContext, logging) => 
    { 
     // I want to use my already configured ILoggerFactory. 
     // I do not want to configure it here... 
    }) 
    .UseStartup<Startup>() 
    .Build(); 

Grundsätzlich mag ich meinen Start meines verwendet bereits loggerFactory und serviceCollection erstellt. Ist das möglich? Und wenn ja, wie mache ich das?

Antwort

0

Die Build-Methode von WebHost instanziiert eine Instanz der Klasse ServiceCollection() als Methodenvariable und sie wird an jeden Aktionsdelegaten übergeben (Beispiel: ConfigureService(Action<IServiceCollection>configureService)). Es scheint, dass es keine Möglichkeit gibt, diese durch benutzerdefinierte zu ersetzen, außer eigene Implementierungen von IWebHost (die alle möglichen Probleme einführen kann) .Regards.

Verwandte Themen