gpt4 book ai didi

c# - startup.cs的Configure方法中如何使用ConfigurationBinder

转载 作者:行者123 更新时间:2023-11-30 19:25:03 26 4
gpt4 key购买 nike

asp.net mvc 6 beta5

我尝试使用 config.json 来激活\禁用日志记录

public IConfiguration Configuration { get; set; }

public Startup(IHostingEnvironment env, IApplicationEnvironment appEnv)
{
var configurationBuilder = new ConfigurationBuilder(appEnv.ApplicationBasePath)
.AddJsonFile("config.json")
.AddEnvironmentVariables();
Configuration = configurationBuilder.Build();

DBContext.ConnectionString = Configuration.Get("Data:DefaultConnection:ConnectionString");
}

public void ConfigureServices(IServiceCollection services)
{
services.AddOptions();
services.Configure<AppSettings>(Configuration.GetConfigurationSection("AppSettings"));
}

// Configure is called after ConfigureServices is called.
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerfactory)
{
// that line cause NullReferenceException
AppSettings settings = ConfigurationBinder.Bind<AppSettings>(Configuration);
if (settings.Log.IsActive)
{
................
}

示例来自 ASP.NET 5 (vNext) - Getting a Configuration Settinghttp://perezgb.com/2015/07/04/aspnet-5-typed-settings-with-the-configurationbinder/
还有另一种方法可以在“配置”方法中获取 AppSettings 的实例吗?我需要键入的对象。

最佳答案

ConfigureServices 中配置的每个服务都可以由运行时注入(inject)到 Configure 方法中:

public void Configure(IApplicationBuilder app, IOptions<AppSettings> options)
{
// access options.Options here
}

与直接访问 ServiceProvider 相比,这是一种更简洁的解决方案。

关于c# - startup.cs的Configure方法中如何使用ConfigurationBinder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31541944/

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