【问题标题】:How to read multiple connectionstrings in appsetting.json file in .net core api project如何在.net core api项目的appsetting.json文件中读取多个连接字符串
【发布时间】:2021-05-10 18:00:15
【问题描述】:
我有多个连接字符串属性,例如:-
在 AppSetting.json 文件中
"connectionstring":{
"connection1":"datasource1";
"connection2":"datasource2";
}
我想读取控制器或服务文件中的连接字符串键。
.net Core API 有可能吗?
谢谢
【问题讨论】:
标签:
c#
asp.net-core
asp.net-core-webapi
【解决方案1】:
添加 IConfiguration 依赖:
var c1= Configuration.GetConnectionString("connection1");
var c2= Configuration.GetConnectionString("connection2");
【解决方案2】:
首先,您必须在控制器的构造函数中注入 IConfiguration,在 Startup.cs 类中有示例。
private readonly IConfiguration _config;
public Startup(IConfiguration config)
{
_config = config;
}
_config.GetConnectionString("datasource1")
_config.GetConnectionString("datasource2")
【解决方案3】:
您可以将设置绑定到依赖注入服务容器以获得更优雅的使用。这是一个供您参考的示例。
文档:Configuration in ASP.NET Core
期权模型
public class AppSettings
{
public ConnectionStringOptions ConnectionStrings { get; set; }
}
public class ConnectionStringOptions
{
public string Connection1 { get; set; }
public string connection2 { get; set; }
}
启动.cs
public IConfiguration Configuration { get; }
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public void ConfigureServices(IServiceCollection services)
{
services.Configure<AppSettings>(this.Configuration);
}
控制器.cs
public class DemoController : ControllerBase
{
private readonly AppSettings appSettings;
public DemoController(IOptions<AppSettings> configuration)
{
this.appSettings = configuration.Value;
var connString1 = this.appSettings.Connection1;
var connString2 = this.appSettings.Connection2;
}
}