ASP.NET Core 是否实现IConfiguration
对配置值的访问?
很可能我的问题出现了,因为我不明白 ASP.NET Core 到底是什么。好吧,我知道它是一个 Web 框架,不确定,但看起来它是 .NET 中的命名空间,或者是一个包......我知道在 php 中,一个框架可以是一组类(命名空间)或编译库是作为扩展提供的,所以我假设 .NET 中也有类似的方法。
最初,我还没有打算围绕 ASP.NET Core。我需要为我的简单控制台 C# 应用程序(VS Code 和 .NET Core)存储一些配置。我发现了很多主题(例如这里:如何从控制台应用程序中的 config.json 读取值)来读取 JSON(推荐)配置。鉴于此,我添加了三个必要的 nugget 包:
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Configuration.FileExtensions;
using Microsoft.Extensions.Configuration.Json;
我需要使用:
new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json").Build();
这将返回一个实现IConfigurationRoot
/IConfiguration
接口的对象。但是所有示例都是在 ASP.NET Core 上下文中给出的。我有一个非常简单的应用程序,我还不需要任何 ASP.NET 功能。
所以我尝试在IConfigurationRoot
没有 ASP.NET 的情况下访问。结果对象存储来自配置文件的值,但没有其接口的所有方法来访问它们。
如何在 .NET 命名空间的上下文中解释这一点?IConfiguration
ASP.NET Core 是否实现了从like访问值的方法Get<T>()
?
如果Microsoft.Extensions.Configuration
是 的一部分或严重依赖Microsoft.AspNetCore.App
,为什么它在不同的命名空间中?
如果我添加 ASP.NET Core(NuGet 包和命名空间),会不会有点矫枉过正?
也许我应该使用除了ConfigurationBuilder
阅读 JSON 之外的东西?