#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[«раздел: ключ»]