Для чтения данных из appsettings.json
Я использую ConfigurationBuilder
, ConfigurationBinder
.
ConfigurationBuilder
, ConfigurationBinder
, позволяющие читать данные из appsettings.json
.
Вопросы:
- Как записать данные в appsettings.json
в консольном приложении?
Можно ли записать данные в appsettings.json
, используя ConfigurationBuilder
, ConfigurationBinder
?
Или мне нужно использовать JsonConvert.DeserializeObject <Settings> (fileText)
для записи данных в appsettings.json
?
Другими словами, если вы используете JsonConvert.DeserializeObject
, тогда я должен:
- прочитать данные appsettings.json
;
- изменить данные в нужном разделе;
- сохранить данные в appsettings.json
.
Понимаю ли я логику c работы с appsettings.json
?
Изображение-1

Изображение-2
Код AppSettings.cs
namespace ConsoleAppCore
{
class AppSettings
{
public string KeyA_SecMain { get; set; }
public string KeyB_SecMain { get; set; }
}
}
Код appsettings. json
{
"SectionMain": {
"KeyA_SecMain": "KeyA_SecMain_Value",
"KeyB_SecMain": "KeyB_SecMain_Value"
}
}
Код ReadWriteAppSettings .cs
using Microsoft.Extensions.Configuration;
using System.IO;
namespace ConsoleAppCore
{
class ReadWriteAppSettings
{
/// <summary>
/// Read GetSection AppSettings
/// </summary>
/// <returns></returns>
public string ReadGetSectionAppSettings()
{
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
IConfigurationRoot configuration = builder.Build();
string result = configuration.GetSection("SectionMain:KeyA_SecMain").Value;
return result;
}
/// <summary>
/// Bind AppSettings
/// </summary>
/// <returns></returns>
public void BindAppSettings()
{
AppSettings appSettings = new AppSettings();
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
var configuration = builder.Build();
var configurationResult = configuration.GetSection("SectionMain");
ConfigurationBinder.Bind(configurationResult, appSettings);
string result_KeyA_Sec1 = appSettings.KeyA_SecMain;
string result_KeyB_Sec1 = appSettings.KeyB_SecMain;
}
}
}
Код Program.cs
namespace ConsoleAppCore
{
class Program
{
static void Main(string[] args)
{
ReadGetSectionAppSettings();
BindAppSettings();
}
static public string ReadGetSectionAppSettings()
{
ReadWriteAppSettings readWriteAppSettings = new ReadWriteAppSettings();
string str = readWriteAppSettings.ReadGetSectionAppSettings();
return str;
}
static public void BindAppSettings()
{
ReadWriteAppSettings readWriteAppSettings = new ReadWriteAppSettings();
readWriteAppSettings.BindAppSettings();
}
}
}