2017-10-28 153 views
0

我正在尝试创建一个自包含的.NET Core控制台应用程序。 在我的应用程序中,我添加了一个配置文件appsettings.json。 目标是现在我需要有可能修改配置文件,而应用程序正在运行(和公布)更改ASP.NET Core中的配置文件

我发现了几个指南,但他们都指向我需要包括以下功能的方向:

 public void ConfigureServices(IServiceCollection services) 
    { 
     // Adds services required for using options. 
     services.AddOptions(); 

     // Register the IConfiguration instance which MyOptions binds against. 
     services.Configure<DBSetting>(Configuration); 

     // Add framework services. 
     services.AddMvc(); 
    } 

但是当我做这一切服务的methodes是红色的。如果我看着你IserviceCollection,文档说它已经过时了。 我确实在我的Program.cs这让我在我的配置文件读取数据添加

  var builder = new ConfigurationBuilder() 
      .AddJsonFile(@"C:\Users\Maarten\Documents\Visual Studio 2015\Projects\CorporationBot\CorporationBotCore\appsettings.json", optional: true, reloadOnChange:true);     
     Configuration = builder.Build(); 

。 现在我需要一种方法来在应用程序运行时更改我的配置。 任何最新的方法来做到这一点?

+0

什么版本的.NET核心吗?你在'.csproj'文件中有什么依赖关系? – omajid

回答

1

根据Microsft写入内置提供程序的配置不会持久。所以你可能需要编写一个自定义提供程序并实现保存。以下链接提供了有关asp.net配置和示例自定义EF提供程序的更多信息。

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration?tabs=basicconfiguration

作为边注,如果该值趋向于runtime.Database改变或其他一些地方也可以是一种可能的选择。

+0

您给我的链接与我使用的代码相同,但不起作用。它给我在方法上的错误。 他们不会一直改变。服务器管理员只需要能够在应用程序开始更改配置文件中的数据库值时对其进行更改 – Captain

+0

根据对该文档的评论,它似乎是.NET Core 2.0的过时版 – Captain

+0

它给您的错误是什么?如果它不是一个Web应用程序,你可能不需要添加配置服务。 – nandithakw

相关问题