Как записать данные в appsettings.json в консольном приложении (.net Core)?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как записать данные в appsettings.json в консольном приложении (.net Core)?

Сообщение Anonymous »

Чтобы прочитать данные из appsettings.json я используюConfigurationBuilder, ConfigurationBinder.

 
 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»