【发布时间】:2019-12-23 16:17:34
【问题描述】:
当我设置 .NET Core v3 Razor Web 应用程序时,startup.cs 文件包含我需要的内容,以便从 appsettings.json 文件访问设置/值;
public IConfiguration Configuration { get; set; }
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
根据我应该能够使用的文档;
Configuration["mysetting:variable"]
任何地方都可以访问它。但是我收到构建错误“当前上下文中不存在名称'配置'”。
为了解决这个问题,我手动构建了配置;
ConfigurationBuilder().AddJsonFile("appsettings.json").Build().GetSection("mysetting")["variable"]
但它的本意是这样做的,不是吗?我知道这在 v3 和 v2 中发生了变化,您确实需要构建配置。
【问题讨论】:
-
您究竟在哪里尝试使用
Configuration["mysetting:variable"]?那个代码是什么样的?即你的构造函数中有Configuration吗?另外,您是否在Startup类中的ConfigureServices()方法中构建了配置? -
@JosieG.Bigler 抱歉我的无知,MVC/MVVM 的新手,并且一直使用剃须刀网页作为最接近我的脚本根源。在核心 3 的 MS 文档中,您不需要构建配置。我可以在启动模式中访问配置对象,但不能在其他地方访问(我假设你可以)。我已经设法通过在我正在使用的模式中复制 IConfiguration 的字段和方法(即不是 startup.cs)或通过将启动中的字段转换为内部静态字段
internal static IConfiguration Configuration { get; private set; }来访问配置对象