【发布时间】:2015-08-17 19:30:48
【问题描述】:
在 ASP.NET vNext 中访问 config.json 文件(或存储配置的其他位置)的正确/推荐方式是什么?
在Startup 类中,我这样设置配置:
public class Startup
{
public IConfiguration Configuration { get; set; }
public Startup(IHostingEnvironment env, IApplicationEnvironment appEnv)
{
var configurationBuilder = new ConfigurationBuilder(appEnv.ApplicationBasePath)
.AddJsonFile("config.json")
.AddEnvironmentVariables();
Configuration = configurationBuilder.Build();
}
但是如果我需要在其他地方访问连接字符串,我该怎么做呢?比如在一个EF上下文的OnConfiguring中,如何获取连接字符串:
protected override void OnConfiguring(EntityOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer( ??? );
我听说你可以使用这个:
var config = Startup.Configuration
?? new Configuration()
.AddJsonFile("config.json")
.AddEnvironmentVariables();
但是 (a) 启动不是静态的,并且 (b) 您肯定不想在每次需要时都重新构建配置设置 - 这是在使用它的任何地方复制代码。
我还读到您应该使用Dependency Injection,但该链接并未完全向您展示如何操作。如果我的 DbContext 构造函数有一个注入参数,那么如何将它注入到无参数的 BaseApiController 中?
这看起来确实是一个常见/简单的要求:在 Startup 中进行配置之后,如何在其他地方访问该配置?这应该在任何地方的文档/示例中。
【问题讨论】:
标签: asp.net asp.net-core