ответ

12

Статический класс ConfigurationManager обычно не доступен в ASP.NET Core. Вместо этого вы должны использовать новую систему ConfigurationBuilder и строго типизированную конфигурацию.

Например, по умолчанию, конфигурация построена в вашем Startup классе, используя что-то похожее на следующее:

public Startup(IHostingEnvironment env) 
{ 
    var builder = new ConfigurationBuilder() 
     .SetBasePath(env.ContentRootPath) 
     .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) 
     .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true) 
     .AddEnvironmentVariables(); 
    Configuration = builder.Build(); 
} 

Это загрузит конфигурацию из файла appsettings.json и добавить ключи корень конфигурации. Если у Вас есть AppSettings файл как следующее:

{ 
    "Logging": { 
    "IncludeScopes": false, 
    "LogLevel": { 
    "Default": "Debug", 
    "System": "Information", 
    "Microsoft": "Information" 
    } 
    }, 
    "ThreadSettings" : { 
    "MaxThreads" : 4 
    } 
} 

Затем вы можете создать строго типизированный ThreadSettings класс аналогично следующему:

public class ThreadSettings 
{ 
    public int MaxThreads {get; set;} 
} 

Наконец, вы можете связать это строго типизированный класс настройки для вашей конфигурации, добавив метод Configure к вашему методу ConfigureServices.

using Microsoft.Extensions.Configuration; 
public void ConfigureServices(IServiceCollection services) 
{ 
    services.Configure<ThreadSettings>(Configuration.GetSection("ThreadSettings")); 
} 

Затем вы можете ввести класс доступа и получить доступ к нему из любого другого места, введя его в конструктор. Например:

public class MyFatController 
{ 
    private readonly int _maxThreads; 
    public MyFatController(ThreadSettings settings) 
    { 
     maxThreads = settings.MaxThreads; 
    } 
} 

Наконец, если вы действительно должны иметь доступ к базовой конфигурации можно также вводить, что в ConfigureServices, чтобы сделать его доступным в классах.

public void ConfigureServices(IServiceCollection services) 
{ 
    services.AddSingleton(Configuration); 
} 

Вы можете прочитать больше о конфигурации на docs или variousblogs