【问题标题】: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 有可能吗?

谢谢

【问题讨论】:

  • 我已经为你修复了标签。
  • 这可能是XY problem。你到底想达到什么目的。
  • 请详细说明问题以及您尝试过的内容。

标签: 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;
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-04-21
        • 2018-12-20
        • 2021-09-13
        • 2020-07-05
        • 2012-09-24
        • 2023-03-15
        • 2020-01-17
        相关资源
        最近更新 更多