从JSON文件加载配置时,我想使用不同的属性名称进行配置。为ASP.NET Core中的选项自定义JSON属性名称
public class MinioConfiguration
{
[DataMember(Name = "MINIO_ENDPOINT")]
public string Endpoint { get; set; }
[DataMember(Name = "MINIO_ACCESS_KEY")]
public string AccessKey { get; set; }
[DataMember(Name = "MINIO_SECRET_KEY")]
public string SecretKey { get; set; }
}
DataMember
也没有JsonProperty
工作。有没有可能实现它?
如果我们在谈论配置文件,我同意你的观点。但我正在使用来自环境变量的配置变量 - Docker ENV变量。它们是在容器启动期间配置的,在这种情况下映射一些配置文件是没有意义的。环境变量例如是'S3_ENDPOINT','S3_ACCESS_KEY','SQL_ENDPOINT'。在应用程序中,它的定义有点不同,'S3Configuration {Endpoint {get; set; }和SqlConfiguration {Endpoint {get;设置;}}'。为了实现这种干净的分离,它是理想的。 –
@OndrejTomcik是的,我知道你来自哪里,但内置的配置提供者根本不提供这些功能。标准环境提供者甚至具有[Azure的硬编码处理](https://github.com/aspnet/Configuration/blob/rel/2.0.0/src/Microsoft.Extensions.Configuration.EnvironmentVariables/EnvironmentVariablesConfigurationProvider.cs#L70)它执行一些特定的映射。 - 所以你可能不得不在这里推出你自己的提供者。请记住提供者和联编程序仍然是独立的,因此您的提供程序将映射到配置项,而不是属性。 – poke