访问控制器类中的appsettings.json值

编程入门 行业动态 更新时间:2024-10-26 18:18:57
本文介绍了访问控制器类中的appsettings.json值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

在弄清如何在startup.cs之外读取appsettings.json值时遇到麻烦.我想做的是,例如,在_Layout.cshtml中,从配置中添加站点名称:

Having trouble figuring out how to read appsettings.json values outside of the startup.cs. What I would like to do is, for instance, is in the _Layout.cshtml, add the site name from the config:

例如:

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

甚至更好:

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

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

Here's my code thus far:

[appsettings.json]

[appsettings.json]

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

[startup.cs]

[startup.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对象.

Maybe I'm reading the docs wrong, but I can't seem to expose the Configuration object outside of the Startup class.

推荐答案

在您的Startup.cs中

In your Startup.cs

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

然后在您的控制器中

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

更多推荐

访问控制器类中的appsettings.json值

本文发布于:2023-11-17 04:25:34,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1608822.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:控制器   类中   json   appsettings

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!