是否有可能仅在json文件中将appsetting.json中的相同属性相关联? (常见的connectionString)

问题描述 投票:0回答:1

我需要在appsetting.json中的两个地方添加数据库连接字符串。

是否有可能在json文件中引入公共变量或与json路径相关的引用,以避免潜在的问题?

如果不触摸c#代码就拥有它会很可爱。

{
...
  "ConnectionStrings": {
    "Default": "Host=localhost;Database=db;Port=5432;Username=postgres;Password=postgres"
  },
  "Nlog": {
    "targets": {
      "database": {
        "type": "Database",
        "dbProvider": "Npgsql.NpgsqlConnection, Npgsql",
        "connectionString": "Host=localhost;Database=db;Port=5432;Username=postgres;Password=postgres",
...
      }
    }
...
}
json asp.net-core .net-core nlog appsettings
1个回答
1
投票

没有没有对此的支持。不过有两件事:

  1. 虽然每种情况下提供的数据都是相同的,但是两件事是not相同的。当两者恰好都使用相同的数据源时,这并不是重复,因为事实并非如此。

  2. ConnectionStrings部分没有什么神奇之处,只是它允许您使用GetConnectionString糖。您也可以执行以下操作:

    services.AddDbContext(o =>
        o.UseSqlServer(Configuration["Nlog:targets:database:connectionString"]));
    

    是否合适是一个单独的讨论。关键是,如果您只是僵持不下,就不必have多次拥有该值。


0
投票

NLog可以在appsettings.json中查找值。您可以使用${configsetting}:]

{
...
  "ConnectionStrings": {
    "Default": "Host=localhost;Database=db;Port=5432;Username=postgres;Password=postgres"
  },
  "Nlog": {
    "targets": {
      "database": {
        "type": "Database",
        "dbProvider": "Npgsql.NpgsqlConnection, Npgsql",
        "connectionString": "${configsetting:item=ConnectionStrings.Default}",
...
      }
    }
...
}

另请参阅https://github.com/NLog/NLog/wiki/ConfigSetting-Layout-Renderer

© www.soinside.com 2019 - 2024. All rights reserved.