关于新配置和选项的官方文档非常好,我建议先看一下.
按照那里提供的指导,首先为您的设置创建一个POCO类:
public class Settings { public string logo_text { get; set; } public bool enable_logo_text { get; set; } }
更新ConfigureServices
启动类的方法,以便从配置的配置中读取设置,然后将其作为可在任何需要的地方注入的服务提供:
public void ConfigureServices(IServiceCollection services) { ... services.Configure(Configuration); services.AddOptions(); }
如果要使用appsettings.json文件,请确保还构建Configuration
包含该json文件的对象.例如:
public Startup(IHostingEnvironment env) { // Set up configuration sources. var builder = new ConfigurationBuilder() .AddJsonFile("appsettings.json") .AddEnvironmentVariables(); Configuration = builder.Build(); }
这样,您可以在appsettings.json文件中配置您的值,并在您的Settings
类上设置值:
{ ... "enable_logo_text": true, "logo_text": "My Logo Text" }
最后,您可以通过添加IOptions
依赖项来访问配置的值.最简单的方法是直接将选项注入视图(如文档中所述),但您可能需要考虑将选项注入控制器并以更受控制的方式将它们传递给视图:
@inject IOptionsSettings ... @if(Settings.Value.enable_logo_text) { @Settings.Value.logo_text }