配置已在Program.cs中的我的应用程序中注册,如此
public static IWebHostBuilder CreateWebHostBuilder(string [] args)=> WebHost.CreateDefaultBuilder(参数) ….
不知道为什么你需要 IConfigurationRoot 接口,但因为你已经构建了一个实例 IConfigurationRoot 在构建主机之前, 的 您可以将root注册为单件服务 .ConfigureServices(services =>{services.AddSingleton<IConfigurationRoot>(configRoot);}) 强> :
IConfigurationRoot
.ConfigureServices(services =>{services.AddSingleton<IConfigurationRoot>(configRoot);})
此外,无需构建配置两次,只需调用即可 的 UseConfiguration(congfigRoot) 强> 。
UseConfiguration(congfigRoot)
public static IWebHostBuilder CreateWebHostBuilder(string[] args) { // build the root var configRoot = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json", optional: false) // ... .Build(); var builder = new WebHostBuilder(); return builder // reuse the configRoot .UseConfiguration(configRoot) // register the configRoot as a singleton service .ConfigureServices(services =>{ services.AddSingleton<IConfigurationRoot>(configRoot); }) .UseStartup<Startup>() .ConfigureLogging(logging => { //override configuration in NLog.config logging.ClearProviders(); logging.SetMinimumLevel(LogLevel.Trace); }) .UseKestrel(); }