【发布时间】:2022-01-23 02:44:48
【问题描述】:
正在尝试遵循此处的控制台应用教程https://www.connectionstrings.com/store-and-read-connection-string-in-appsettings-json/
所以在我的 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'在当前上下文中不存在”。
【问题讨论】:
-
无论如何,这不是一个教程。它假定您已经有一个工作的、已配置的 .NET 应用程序,并且只想从配置中读取一个字符串。在 .NET 6 项目中,您根本无法使用此类代码,因为
Configuration可通过宿主对象获得。您正在构建什么样的应用程序?网络应用?控制台应用程序?哪个 .NET 版本? -
您需要创建一个
ConfigurationBuilder,从Microsoft.Extensions.Configuration.Json加载扩展名为AddJsonFile的文件appsettings.json,然后在ConfigurationBuilder上调用Build()。然后你有一个Configuration对象,你可以从中加载连接字符串。 -
@Hazrelle 在 .NET Core 3 和之后的版本中简单地创建一个通用主机来处理所有这些。
-
查看Configuration in .NET 了解配置的真正工作原理。
-
是@PanagiotisKanavos,但没有指定主机,OP 可能想要手动执行。在 .NET 6 中,最小的控制台应用程序没有主机。