试图在这里学习控制台应用程序https://www.connectionstrings.com/store-and-read-connection-string-in-appsettings-json/的教程
所以在我的应用程序中,我有:
{
"ConnectionStrings": {
"myDb1": "Server=myServer;Database=myDb1;Trusted_Connection=True;",
}
}我的节目:
using System;
using Microsoft.Extensions.Configuration;
namespace mynamespace
{
class Program
{
string myDb1ConnectionString = _configuration.GetConnectionString("myDb1");
static void Main(string[] args)
{
...
}
}
}我得到的错误是:“名称'_configuration‘在当前上下文中不存在”。
发布于 2021-12-21 18:13:20
链接到的页面不是教程,它只显示如何从任何配置提供程序(而不仅仅是appsettings.json )读取连接字符串。它假定您已经构建了一个配置对象。不过,.NET (Core) 5和6使用的代码要简单得多。
检查.NET中的配置以了解配置到底是如何工作的。您可以找到关于各种配置提供程序、如何使用它们以及如何在ASP.NET核中的配置中创建自己的配置提供程序的更详细信息。
使用通用主机
在当前的长期版本.NET 6中,最低限度的应用程序需要:
using Microsoft.Extensions.Hosting;
using IHost host = Host.CreateDefaultBuilder(args).Build();
var configuration=host.Services.GetRequiredService<IConfiguration>();
var connectionString=configuration.GetConnectionString("blahblah");
...正如文档所解释的,CreateDefaultBuilder将从任何appsettings.json文件、环境变量以及最后的命令行参数中加载配置设置。
这意味着您可以通过使用环境变量或CLI参数指定新值来覆盖存储在JSON文件中的设置,例如:
dotnet run /ConnectionStrings:blahblah="......."没有通用主机的
只需使用ConfigurationBuilder创建配置对象:
IConfiguration config = new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.AddEnvironmentVariables()
.AddCommandLine(args)
.Build();
var connectionString=configuration.GetConnectionString("blahblah");https://stackoverflow.com/questions/70439506
复制相似问题