.net - 使用 netstandard2.0 读取应用程序配置详细信息的推荐方法是什么
问题描述
在 .NET Framework 中,我们有在创建项目时创建的 app.config 文件。但在 .NET Core 中,在创建控制台应用程序时没有应用程序配置文件。对于 .NET Core 应用程序,推荐的配置文件是什么。
如果 netstandard 库被引用到 .NET Core/.NET Framework 应用程序,如果 netstandard 库已经从配置文件中读取了配置详细信息,那么必须使用哪些类。而且我认为 .NET Core 支持多个配置文件
解决方案
在 .NET Core 中,配置设置可以来自不同的来源:
- 文件格式(INI、JSON 和 XML)。
- 命令行参数。
- 环境变量。
- 内存中的 .NET 对象。
- 未加密的 Secret Manager 存储。
- 加密的用户存储,例如 Azure Key Vault。
- 自定义提供程序(安装或创建)。
如您所见,您有许多选项,甚至可以同时使用多个选项。选择您喜欢的任何来源或最适合您的场景的来源。
在 ASP.NET Core 应用程序中,通常使用 JSON 文件。(但是,默认情况下也会使用命令行和环境变量的设置)。JSON 配置文件的命名约定是appsettings.json(但您可以根据需要使用其他名称)。所以我们可以说,appsettings.json大致相当于 .NET Core 中的App.config。
下面的代码示例显示了如何从 JSON 文件中读取设置:
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json");
var configuration = builder.Build();
(要编译它,您需要安装Microsoft.Extensions.Configuration.Json NuGet 包。)
此后,您可以通过配置对象的类字典接口访问配置数据。
但是,还有更方便的方式来使用配置数据。在 ASP.NET Core 中广泛使用的推荐方法是 Options API。
您可以在MSDN 文档中找到所有详细信息。
推荐阅读
- ag-grid - ImmutableService 需要实现 getRowNodeId() 回调,您的行数据需要 ID
- android - 从 Firebase 实时数据库中检索 listView 值到 longclicklistner 上的 Alertdialog
- python - 我想在未找到密钥时返回 0,而不是 Pandas 数据框中的“未找到密钥”错误
- android - Android - 在 SettingsActivity 屏幕底部包含一个 ButtonBar?
- reactjs - 将 TypeScript 添加到现有的创建反应应用程序时无法解析文件路径
- android-studio - 如何修复 gradle 同步新的 android studio 失败
- bash - 如何使用 bash 和 printf 转换日期格式?
- python - Python - 转换数据框和切片
- python - 如何在刻度之间对齐条形图中的条形(matplotlib)?
- django - 测试用户验证视图的问题