веб-api dotnet core 3.1 — Имя «Конфигурация» не существует в текущем контексте

#asp.net-web-api #.net-core

#asp.net-web-api #.net-core

Вопрос:

Я создаю веб-API, используя dotnet core 3.1, и у меня возникают проблемы с простым получением параметра конфигурации. Вот ошибка:

 The name 'Configuration' does not exist in the current context
  

Startup.cs ссылается на конфигурацию:

     public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    public IConfiguration Configuration { get; }
  

Я просмотрел ряд примеров, и все они, похоже, используют

 var connectionString =  Configuration["ConnectionString"];
  

Я вижу значение в appsettings.json, и мне нравится тот факт, что appsettings существует.Файл Development.json также для конфигураций. Просто возникли проблемы с доступом к ним.

Я уверен, что это что-то простое, но по какой-то причине мне требуется много времени, чтобы разобраться. Было бы здорово, если бы в шаблоне WeatherForecast была ссылка на значение конфигурации.

Ответ №1:

 var connectionString = Configuration.GetConnectionString("Default")
  

Убедитесь, что у вас есть ConnectionStrings разделы, есть пример:

 "ConnectionStrings": {
  "Default": "Server=DESKTOP-L4QDV84;Database=Tournaments_MSA;Trusted_Connection=True;",
  "HangfireConnection": "Server=DESKTOP-L4QDV84;Database=HangfireDB;Trusted_Connection=True;"
}
  

Редактировать:

IConfiguration экземпляр уже существует в коллекции сервисов, поэтому вы можете легко получить к нему доступ, добавив параметр в конструктор вашего контроллера.

 private readonly IConfiguration _configuration;
public HomeController(IConfiguration configuration)
{
    _configuration = configuration;
}
  

И затем вы можете использовать его в методах вашего контроллера

Комментарии:

1. Но в vscode в классе контроллера «Конфигурация» подчеркнута и выдает ошибку. Я не могу ссылаться на конфигурацию в контроллере.

2. Абсолютно. Спасибо. В качестве дополнительного вопроса, если я добавлю раздел в appsettings.json, которого нет в разделе «ConnectionStrings», как мне получить из него информацию? Я не могу использовать конфигурацию. GetConnectionString(«xxxx»), так что же мне вызвать?

3. Я понял. Найдено learn.microsoft.com/en-us/aspnet/core/fundamentals / … и видите, что мы можем называть это как Configuration[«раздел: ключ»]