ConfigurationBuilder,ConfigurationBinder allow you to read data from appsettings.json.
Questions:
- How to write data to appsettings.json in a console application?
Can I write data to appsettings.json usingConfigurationBuilder, ConfigurationBinder?
Или мне нужно использовать JsonConvert.DeserializeObject (fileText) для записи данных в appsettings.json?
Другими словами, если вы используете JsonConvert.DeserializeObject, то мне следует:
- прочитать данные appsettings.json;
- измените данные в нужном
разделе;
- сохраните данные в appsettings.json.
Мне нужно понимаете логику работы с 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
{
///
/// Read GetSection AppSettings
///
///
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;
}
///
/// Bind AppSettings
///
///
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();
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/608 ... n-net-core