You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET中依赖注入容器传入的IConfiguration是否可写入?

关于IConfiguration实例写入的安全性疑问

根据.NET配置文档说明:
给定一个或多个配置源,IConfiguration类型提供配置数据的统一视图。配置是只读的,配置模式并非设计为可通过编程方式写入。

然而IConfiguration的属性暴露了setter,我可以在它被依赖注入到类中后,为实例添加值。之后我可以手动将该实例传入构造函数和方法,并读取已设置的属性。如下例所示,我可以将_config传入Bar的构造函数,它能读取"MyKey"并返回合适的Bar实例。

我通过测试发现,每个MyClass实例似乎都持有独立的IConfiguration实例;在一个MyClass实例中设置"MyKey"不会影响另一个实例中的"MyKey"值。

但我原本理解IConfiguration应代表应用全局配置,由多个源汇总而成,在启动时以不可变形式暴露给应用代码。是否有文档说明以这种方式添加键是安全的,且不会让未被创建它的MyClass设置值的Bar构造函数读取到该值?

public class MyClass
{
  private IConfiguration _config;

  public MyClass(IConfiguration config)
  {
    _config = config;
  }

  public Bar Foo()
  {
    _config["MyKey"] = "true";
    return new Bar(_config);
  }
}

内容的提问来源于stack exchange,提问作者Brosuke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 12:02:39