Asp.net core 如何更新(内存中)IConfigurationSection的值

Asp.net core 如何更新(内存中)IConfigurationSection的值,asp.net-core,Asp.net Core,鉴于Config是一个i配置,而服务是一个服务集合,下面的代码是: var section = Config.GetSection("MyDatabaseOptions"); var configdb = secao.Get<MyDbConfiguration>(); configdb.ConnectionString = DoSomethingWithSectionObject(configdb); 我怎么能做到?或者还有另一种方法

鉴于
Config
是一个
i配置
,而
服务
是一个
服务集合
,下面的代码是:

        var section = Config.GetSection("MyDatabaseOptions");
        var configdb = secao.Get<MyDbConfiguration>();
        configdb.ConnectionString = DoSomethingWithSectionObject(configdb);

我怎么能做到?或者还有另一种方法?

IConfiguration只是一个字符串层次结构,在引擎盖下有一个指向它的路径,因此您可以使用索引器和正确的键修改值:

var section = Config.GetSection("MyDatabaseOptions");
var configdb = section.Get<MyDbConfiguration>();
section[nameof(MyDbConfiguration.ConnectionString)] = DoSomethingWithSectionObject(configdb);

有一个专门针对Microsoft.Extensions.Configuration的问题标签?是否尝试在配置中添加
AddInMemoryCollection
,并更新词典?
var section = Config.GetSection("MyDatabaseOptions");
var configdb = section.Get<MyDbConfiguration>();
section[nameof(MyDbConfiguration.ConnectionString)] = DoSomethingWithSectionObject(configdb);
Configuration[$"{section.Path}:{nameof(MyDbConfiguration.ConnectionString)}"] = "new value";