Сохраните изменения конфигурации в appsettings.json.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Сохраните изменения конфигурации в appsettings.json.

Сообщение Anonymous »

У меня есть старое настольное приложение .NET 2.0, которое использует стандартные настройки Settings.settings следующим образом:

Код: Выделить всё

    [Serializable]
public class AlgebraStatsParams
{
public List Params { get; private set; }

public AlgebraStatsParams()
{
Params = new List();
if (Properties.Settings.Default.AlgebraStats != null)
foreach (string settings in Properties.Settings.Default.AlgebraStats)
{
GeneratorStats p = GeneratorStats.FromString(settings);
Params.Add(p);
}
Params.Sort();
}

public void SaveToConfig()
{
Properties.Settings.Default.Upgrade();
Properties.Settings.Default.AlgebraStats.Clear();
foreach (GeneratorStats p in Params)
Properties.Settings.Default.AlgebraStats.Add(p.ToString());
Properties.Settings.Default.Upgrade();
Properties.Settings.Default.Save();
}
}
Я перенес все на .NET 6.0 без зависимостей от какого-либо нестандартного пакета или библиотеки и решил использовать appsettings.json в качестве нового стандартного способа для хранения настроек приложения.

Код: Выделить всё

    internal static class Program
{
public static IConfiguration Configuration;

[STAThread]
static void Main()
{
var builder = new ConfigurationBuilder()
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: false);
Configuration = builder.Build();

ApplicationConfiguration.Initialize();
Application.Run(new MainForm());
}
}
И, к моему удивлению, в .NET 6 нет возможности сохранять изменения в appsettings.json, как мне хотелось бы в следующем коде:

Код: Выделить всё

    [Serializable]
public class AlgebraStatsParams
{
public List Params { get; private set; }

public AlgebraStatsParams()
{
Params = Program.Configuration.GetSection("StatsSettings").Get() ?? new List();
Params.Sort();
}

public void SaveToConfig()
{
// I want use SET and SAVE appsettings
Program.Configuration.GetSection("StatsSettings").Set(Params);
Program.Configuration.Save();
}
}
Итак, вопрос: каков стандартный способ сохранения изменений в конфигурации appsettings.json ( без внешних пакетов) так же просто, как это было раньше в .NET 2.0?

Подробнее здесь: https://stackoverflow.com/questions/770 ... tings-json
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

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

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