gpt4 book ai didi

c# - 访问 Controller 类中的 appsettings.json 值

转载 作者:可可西里 更新时间:2023-11-01 08:03:08 24 4
gpt4 key购买 nike

无法弄清楚如何读取 startup.cs 之外的 appsettings.json 值。我想做的是,例如,在 _Layout.cshtml 中,从配置中添加站点名称:

例如:

ViewData["SiteName"] = Configuration.GetValue<string>("SiteSettings:SiteName");

或者更好:

public class GlobalVars {
public static string SiteName => Configuration.GetValue<string>("SiteSettings:SiteName");
}

到目前为止,这是我的代码:

[应用设置.json]

"SiteSettings": {
"SiteName": "MySiteName"
}

[启动.cs]

public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.AddEnvironmentVariables();
Configuration = builder.Build();

var siteName = Configuration.GetValue<string>("SiteSettings:SiteName");
}

public IConfigurationRoot Configuration { get; }

也许我读错了文档,但我似乎无法在 Startup 类之外公开 Configuration 对象。

最佳答案

在你的 Startup.cs 中

    public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<IConfiguration>(Configuration);
}

然后在你的 Controller 中:

public class ValuesController : Controller
{
IConfiguration configuration;

public ValuesController(IConfiguration configuration)
{
this.configuration = configuration;
}
}

关于c# - 访问 Controller 类中的 appsettings.json 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38359219/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com