如何使用 Microsoft.Extensions.Configuration 将值保存到 JSON 配置文件中?
How to save value into JSON configuration file using Microsoft.Extensions.Configuration?
正在关注 , I am trying to retrieve and save startup application values using the IConfiguration interface from Microsoft.Extensions.Configuration API。但是,我找不到将这些值更改为设置 JSON 文件的方法。
例如,考虑以下 appSettings.json 配置文件:
"Setting":
{
"Startup":
{
"IsFirstStart": true
}
}
负责提取的关联class:
public class AppHandler
{
#region fields
// MS heper contains configuration parameters from JSON file
private IConfiguration _appConfiguration = null;
// MS config builder
private IConfigurationBuilder _appBuilder = null;
// Is it software first use
private bool _isFirstStart;
#endregion fields
#region Constructor
private AppHandler()
{
_appBuilder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.dev.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables();
_appConfiguration = _appBuilder.Build();
}
#endregion Constructor
#region Methods
private AppInitialized()
{
// Session initialization has been performed & store back the information in 'appSettings.json' file
_appConfiguration["IsFirstStart"] = Convert.ToString(_isFirstStart = false);
/*
* HOW TO SAVE BACK IsFirstStart change into Json file?
*/
}
#endregion Methods
}
而且,我看过ApplicationSettings class contains Save() method。我可能会改为实施此 class,但有什么区别,您为 UWP / WPF 应用程序推荐哪一个?
在此上下文中,_appConfiguration 只是一个将您的配置保存在内存中的对象。可能的解决方案是将您的配置绑定到 POCO,进行更新,然后创建一个文件流来覆盖您的 json 文件。
var appConfig = new AppConfig()
{
//your appsettings.json props here
}
_appConfiguration.Bind(appConfig);
appConfig.IsFirstStart = "...";
string json = JsonConvert.SerializeObject(appConfig);
System.IO.File.WriteAllText("appsettings.json", json);
正在关注
例如,考虑以下 appSettings.json 配置文件:
"Setting":
{
"Startup":
{
"IsFirstStart": true
}
}
负责提取的关联class:
public class AppHandler
{
#region fields
// MS heper contains configuration parameters from JSON file
private IConfiguration _appConfiguration = null;
// MS config builder
private IConfigurationBuilder _appBuilder = null;
// Is it software first use
private bool _isFirstStart;
#endregion fields
#region Constructor
private AppHandler()
{
_appBuilder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.dev.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables();
_appConfiguration = _appBuilder.Build();
}
#endregion Constructor
#region Methods
private AppInitialized()
{
// Session initialization has been performed & store back the information in 'appSettings.json' file
_appConfiguration["IsFirstStart"] = Convert.ToString(_isFirstStart = false);
/*
* HOW TO SAVE BACK IsFirstStart change into Json file?
*/
}
#endregion Methods
}
而且,我看过ApplicationSettings class contains Save() method。我可能会改为实施此 class,但有什么区别,您为 UWP / WPF 应用程序推荐哪一个?
在此上下文中,_appConfiguration 只是一个将您的配置保存在内存中的对象。可能的解决方案是将您的配置绑定到 POCO,进行更新,然后创建一个文件流来覆盖您的 json 文件。
var appConfig = new AppConfig()
{
//your appsettings.json props here
}
_appConfiguration.Bind(appConfig);
appConfig.IsFirstStart = "...";
string json = JsonConvert.SerializeObject(appConfig);
System.IO.File.WriteAllText("appsettings.json", json);