首页 > 解决方案 > 如何从 appsettings.json 文件中获取 ConnectionString?

问题描述

问题是如何从 ASP NET Core 3.1 应用程序中的 appsetting.json 文件中获取 ConnectionString?这是 appsettings.json 文件

"ConnectionStrings": {
"DefaultConnection": "data source=exmaple;initial catalog=example;persist security info=True;user id=example;password=example"
}

在示例中,所有参数都隐藏在名称示例后面

在 Program.cs 类中,我包含文件

static void ConfigureAppConfiguration(WebHostBuilderContext context, IConfigurationBuilder config, string[] args)
{
    config
         .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
         .AddJsonFile($"appsettings.{context.HostingEnvironment.EnvironmentName.ToLowerInvariant()}.json", optional: true, reloadOnChange: true)
         .AddEnvironmentVariables()
         .AddCommandLine(args);
}

当我尝试在 Startup 类中获取连接字符串值时,我得到 null

public void ConfigureServices(IServiceCollection services)
{
    var connetctionString = config.GetConnectionString("DefaultConnection");
    ...
}

为什么连接 == null ?

标签: c#asp.net-core

解决方案


除了上一个答案,您还可以在Startup.cs您所做的方法中使用,因此它看起来如下:

    public IConfiguration Configuration { get; }
    public Startup(IConfiguration configuration)
    {
          Configuration = configuration;
    }
    
            
    public void ConfigureServices(IServiceCollection services)
    {
        var connectionString = Configuration.GetConnectionString("DefaultConnection");
    }

另请注意,您不需要在Program.cs. 您还可以使用Host.CreateDefaultBuilder-method,它会自动添加文件。


推荐阅读