asp.net-core - ASP.NET Core 选项模式,名称由单个下划线分割
问题描述
我正在尝试使用 ASP.NET Core 选项模式加载我的应用程序设置。
appsettings.json
包含:
{
"TEst": "hello",
"TEST_ABC": "2"
}
POCO 类:
public class AppSetting
{
public string Test { get; set; }
public string TestAbc { get; set; }
}
绑定到配置:
services.Configure<AppSetting>(Configuration);
在控制器中访问 AppSetting 实例时,我只能将 config 设置Test
为hello
. TestAbc
设置为null
。
似乎Options模式无法转换这种命名配置,是否可以通过任何其他方式来实现这一点?
解决方案
自动完成的唯一方法是使用下划线 ( Test_Abc
) 命名您的属性。除此之外,您可以手动指定映射:
services.Configure<AppSettings>(o =>
{
o.TestAbc = Configuration["TEST_ABC"];
// etc.
});
@DavidG 关于使用的评论[JsonProperty]
可能有效。我从来没有在配置的上下文中尝试过。但是,它只有在使用 JSON 配置提供程序时才有效,如果它完全有效的话。例如,如果您以后需要通过环境变量来满足这一点,那么您就不走运了。因此,我会坚持使用比这更普遍适用的解决方案。
推荐阅读
- cmake - 交叉编译时编译器找不到头文件
- python - SQL alchemy 查询单列
- java - 使用 JdbcPagingItemReader 返回一个 List 给 ItemProcessor
- sql - 根据 case 语句中的现有列创建新列
- r - RMarkdown 到 PDF 和 Fancyhdr - 控制标题后的间距
- kubernetes - Rancher:kubernetes 集群卡在等待中。“没有到主机的路由”
- php - 通过 Laravel 集合创建单个数组,但具有特定字段
- node.js - Lambda 函数 NodeJS 版本始终恢复到 12.x
- kotlin - Kotlin 自动将字符串转换为 Enum
- javascript - 反编译的 APK 上的 JS 中的 API 密钥