Подскажите, как в .net core создавать и использовать файл кофигурации (то что в .net framework было .settings файлом, добавляемым в проект). Читаю про Microsoft.Extensions.Configuration, но не уверен что это то, что мне надо.
Конфигурация приложения в ASP.NET Core представляет объект интерфейса IConfiguration, либо интерфейса IConfigurationRoot, который наследуется от IConfiguration. Данный объект хранит все конфигурационные настройки в виде набора пар "ключ"-"значение".Основная функциональность по работе с конфигурацией сосредоточена в пакете Microsoft.Extensions.Configuration. Это пакет также позволяет определить некоторые конфигурационные настройки в памяти.
Если возьмем проект ASP.NET Core по типу Empty, который изначально не содержит никакой конфигурации. В первую очередь добавим в проект через пакетный менеджер Nuget пакет Microsoft.Extensions.Configuration.И изменим стандартный класс Startup следующим образом
namespace ConfigurationApp{ public class Startup
{
public Startup()
{
// строитель конфигурации
var builder = new ConfigurationBuilder()
.AddInMemoryCollection(new Dictionary<string, string>
{
{"firstname", "Tom"},
{"age", "31"}
});
// создаем конфигурацию
AppConfiguration = builder.Build();
}
// свойство, которое будет хранить конфигурацию
public IConfiguration AppConfiguration { get; set; }
public void ConfigureServices(IServiceCollection services)
{
}
public void Configure(IApplicationBuilder app)
{
app.Run(async (context) =>
{
await context.Response.WriteAsync(AppConfiguration["firstname"]);
});
}
}
}
Для использование конфигурации можете обратиться к нужной настройке по ключу
string firstName = AppConfiguration["firstname"];
Для создания объекта IConfigurationRoot применяется метод Build() класса ConfigurationBuilder. А с помощью объекта IConfigurationSource для ConfigurationBuilder устанавливается источник конфигурационных настроек.Как правило, установка конфигурации производится в конструкторе класса Startup. Поэтому для определения конфигурации приложения в класс добавлен конструктор, а для хранения конфигурации определено свойство AppConfiguration. Все настройки конфигурации будут храниться в памяти. Для добавления настроек применяется метод AddInMemoryCollection(), который в качестве параметра принимает словарь. Каждый элемент такого словаря представляет отдельную конфигурационную настройку.
Например, {"firstname", "Tom"} - ключ настройки "firstname", а значение - "Tom". Далее этот элемент попадает в конфигурацию приложения.
Для задания конфигурации используются различные источники - данные в памяти, файлы JSON, XML, INI. При этом мы можем использовать сразу несколько источников. Но надо учитывать, что при определении объекта IConfiguration мы должны указать как минимум один источник.
Для дополнительной информации воспользуйтесь этими ссылками
Провайдеры конфигурации
Конфигурация в .NET Core
Получение конфигурации в контроллерах и сервисах
.NET Core console application
1. Добовляем пакет Nuget
Базовый пакет AI Nuget является минимальным, чтобы работать Application Insights в консольном приложении .NET Core.Добовляем последную версию.
PM> Install-Package Microsoft.ApplicationInsights
2. В следующем примере кода показано, как установить instrumentation key в экземпляре конфигурации по умолчанию Application Insights, а также создать и использовать TelemetryClient напрямую. По умолчанию TelemetryConfiguration - это синглтон, который будет работать до тех пор, пока приложение не завершится, и вы можете создать клиента телеметрии в любом месте, где хотите, без конструктора без аргументов, и он будет использовать экземпляр конфигурации по умолчанию.
public class Program
{
public static void Main(string[] args)
{
TelemetryConfiguration.Active.InstrumentationKey =
"11111111-2222-3333-4444-555555555555";
TelemetryClient client = new TelemetryClient();
client.TrackTrace("Demo application starting up.");
for (int i = 0; i < 10; i++)
{
client.TrackEvent("Testing " + i);
}
client.TrackException(new Exception("Demo exception."));
client.TrackTrace("Demo application exiting.");
client.Flush();
}
}
Пример является довольно упрощенным для установки ключа инструментария. Лучшей альтернативой могло бы быть чтение значения из конфигурации. Ниже приведен пример чтения из переменной среды.
IConfiguration config = new ConfigurationBuilder()
.AddEnvironmentVariables().Build();
string iKey = config["AI_KEY"];
if (string.IsNullOrEmpty(iKey))
{
return -1;
}
Установливаем переменную окружения AI_KEY по мере необходимости.
Или же можно прочитать из файла appsettings.json
{
"ApplicationInsights":
{
"InstrumentationKey": "11111111-2222-3333-4444-555555555555"
}
}
Добовляем json файл в IConfiguration
IConfiguration config = new ConfigurationBuilder()
.AddJsonFile("appsettings.json", true, true)
.Build();
string ikey = config["ApplicationInsights:InstrumentationKey"];
Logging and Configuration In A .NET Core Console Application
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники