首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Microsoft.Extensions.Configuration将值保存到JSON配置文件中?

如何使用Microsoft.Extensions.Configuration将值保存到JSON配置文件中?
EN

Stack Overflow用户
提问于 2020-05-20 14:34:42
回答 1查看 3.2K关注 0票数 3

这个例子之后,我尝试使用IConfiguration接口从Microsoft.Extensions.Configuration API检索和保存启动应用程序的值。但是,我没有找到将这些值更改为设置JSON文件的方法。

例如,请考虑以下appSettings.json配置文件:

代码语言:javascript
复制
"Setting":
{
  "Startup":
   {
      "IsFirstStart": true
   }
}

A负责提取的相关类别:

代码语言:javascript
复制
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
}

此外,我还看到https://learn.microsoft.com/en-us/dotnet/api/system.configuration.applicationsettingsbase?view=dotnet-plat-ext-3.1类包含https://learn.microsoft.com/en-us/dotnet/api/system.configuration.applicationsettingsbase.save?view=dotnet-plat-ext-3.1#System_Configuration_ApplicationSettingsBase_Save。我可能会实现这个类,但是有什么不同,您推荐哪一个用于UWP / WPF应用程序呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-20 15:17:49

在这种情况下,_appConfiguration只是一个在内存中保存配置的对象。可能的解决方案是将配置绑定到POCO,进行更新,然后创建一个文件流来覆盖json文件。

代码语言:javascript
复制
   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);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61915802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档