Вот статья по теме:
https://learn.microsoft.com/en-us/aspnet/core/fund... Раздел "Environment variables".
Там есть пример, ссылка на код (на
GitHub) и вызов
set MyKey="My key from Environment"
set Position__Title=Environment_Editor
set Position__Name=Environment_Rick
dotnet run
Собственно, под капотом следующее (тут сборная солянка, из разных классов):
// из public class Startup
public void ConfigureServices(IServiceCollection services)
{
services. Configure<PositionOptions>(Configuration.GetSection(
PositionOptions.Position));
services.AddRazorPages();
}
// из кода, который обращается к настройкам
public class PositionOptions
{
public const string Position = "Position";
public string Title { get; set; }
public string Name { get; set; }
}
public Test2Model(IOptions<PositionOptions> options)
{
_options = options.Value;
}
public ContentResult OnGet()
{
return Content($"Title: {_options.Title} \n" +
$"Name: {_options. Name}");
}
Т.е. в Вашем случае нужно:
- сделать класс ApiConfig (по образцу PositionOptions из примера выше)
- в Startup вызвать services. Configure, передав данные класса ApiConfig
- в коде, который дожен работать с ApiConfig запросить в конструкторе IOptions<ApiConfig>
Второй вариант доступа такой:
var title = Configuration["Position:Title"];
var name = Configuration["Position:Name"];