【发布时间】:2019-01-19 21:44:09
【问题描述】:
我正在尝试从 appsettings.json 中读取数据,但我不想使用 DI。我只是想访问该文件。按照 MS 的建议,我正在关注 simple configuration。
using System.IO;
using Microsoft.Extensions.Configuration;
class Program
{
public static IConfigurationRoot Configuration { get; set; }
static void Main(string[] args)
{
IConfigurationBuilder builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json");
Configuration = builder.Build();
}
}
当我指定对 Microsoft.Extensions.Configuration 的引用时,类从红色突出显示变为绿色,除了一个 - Configuration Builder 实例创建。它会产生以下错误。
错误 CS0246 找不到类型或命名空间名称“ConfigurationBuilder”(您是否缺少 using 指令或程序集引用?)
我找到的所有示例都以相同的方式设置。甚至docs for Configuration Builder 也说它应该在那里。我不知道如何继续。
如果有任何意义,我正在使用 .NET Core 2.0。
【问题讨论】:
-
这很奇怪,我创建了相同的控制台应用程序,没问题。您创建了一个新的空 .net Core 2.0 控制台应用程序?
-
你添加了正确的包吗?没有 ASP.NET Core Meta 包,您需要自己引用这些东西。附言问题与 DI 完全无关,因为配置从一开始就不需要它,并且使用了 new 关键字,即使在 ASP:NET Core 中也是如此
-
@kloarubeek 我也无法解释。你能确认已经安装了
Microsoft.Extensions.Configuration.Json包吗?我很好奇,因为当我安装它(like this)时,正如下面答案中所建议的那样,我让它工作了。请检查 Solution Explorer 中的 Dependecies/NuGet(由于某种原因,它没有显示在我的 NuGet Solution Explorer 中)。 -
@Tseng 我可能已经成为 MS 帮助我项目模板的受害者,这让我不知道我需要一些东西。很高兴发现,谢谢。您建议将
ConfigurationBuilder包含在哪个包中?我希望它与IConfigurationBuilder相同,正如我在问题中提到的那样,确实工作。 -
当您正在寻找包含特定类和/或扩展方法的包时,请使用 Microsoft/.NET Core 团队的Reverse Package Search 进行搜索。即packagesearch.azurewebsites.net/?q=AddJsonFile
标签: c# asp.net-core .net-core appsettings .net-core-2.0