I am in process of replacing Settings.settings file with appsettings.json and this is what I have done
[STAThread]
static void Main()
{
ApplicationConfiguration.Initialize();
using IHost host = CreateHostBuilder().Build();
System.Windows.Forms.Application.Run(host.Services.GetRequiredService<XtraMain>());
}
static IHostBuilder CreateHostBuilder() =>
Host.CreateDefaultBuilder()
.ConfigureAppConfiguration((context, builder) =>
{
builder.AddJsonFile("apsettings.json", optional: true, reloadOnChange: true);
})
.ConfigureServices((context, services) =>
{
services.AddScoped<XtraMain>();
services.AddPersistenceServices(context.Configuration);
services.Configure<AppSettings>(context.Configuration.GetSection(nameof(AppSettings)));
});
And I add this AppSettings class to store data from AppSettings section in apsettings
public class AppSettings
{
public string Palette { get; set; }
public string ThemeName { get; set; }
}
and this my AppSettings
{
"AppSettings": {
"Palette": "Default",
"ThemeName": "Office 2019 Colorful"
}
}
and in my Main form
private readonly AppSettings settings;
public XtraMain(IOptions<AppSettings> settings)
{
InitializeComponent();
this.settings = settings.Value;
}
public void GetDataFromAppsettings()
{
UserLookAndFeel.Default.SkinName = settings.ThemeName;
UserLookAndFeel.Default.SetSkinStyle(settings.ThemeName, settings.Palette);
}
public void SetAppsettings()
{
//modify appsettings.json Programmatically
}
How can I modify appsettings.json Programmatically