Get*_*toX 6 json nlog appsettings .net-core asp.net-core
我需要在 appsettings.json 中的两个位置使用数据库连接字符串。
是否可以在 json 文件中引入公共变量或 json-path 相关引用以避免潜在的问题?
如果能在不接触 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",
...
}
}
...
}
Run Code Online (Sandbox Code Playgroud)
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}",
...
}
}
...
}
Run Code Online (Sandbox Code Playgroud)
另请参阅https://github.com/NLog/NLog/wiki/ConfigSetting-Layout-Renderer
我专门为此创建了一个 nuget 包!在这里查看: https: //www.nuget.org/packages/TemplateFormattedConfiguration/
在你的例子中你应该这样做:
{
...
"ConnectionStrings": {
"Default": "Host=localhost;Database=db;Port=5432;Username=postgres;Password=postgres"
},
"Nlog": {
"targets": {
"database": {
"type": "Database",
"dbProvider": "Npgsql.NpgsqlConnection, Npgsql",
"connectionString": "{ConnectionStrings:Default}",
...
}
}
...
}
Run Code Online (Sandbox Code Playgroud)
在 Startup.cs(或 Program.cs)中,您将添加以下内容:
configuration.EnableTemplatedConfiguration();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4357 次 |
| 最近记录: |