【发布时间】:2020-04-07 21:16:03
【问题描述】:
对于环境设置,我们将 JSON blob 存储在我们的数据库中,例如:
[
{
"env": "local",
"keya": "valueA_local"
"keyb": "valueB_local"
},
{
"env": "development",
"keya": "valueA_dev"
"keyb": "valueB_dev"
},
{
"env": "qa",
"keya": "valueA_qa"
"keyb": "valueB_qa"
}
]
我们有一个枚举:
public enum EnvironmentSettings
{
KeyA = 1,
KeyB = 2,
}
我们有一个类:
[Serializable]
public class MyProjectEnvironmentSettings
{
[JsonProperty("env")]
public string Environment { get; set; }
[JsonProperty("keya")]
public string KeyA{ get; set; }
[JsonProperty("keyb")]
public string KeyB{ get; set; }
}
最后,我需要创建一个返回给定对的值的方法。如果添加了新设置,我希望不必修改此方法。
public string GetEnvironmentSetting(EnvironmentSettings environmentSetting)
{
List<MyProjectEnvironmentSettings> environmentSettings = // get the entire list from the DB
string envName = // get environment
string keyToGet = environmentSetting.ToString().ToLower();
// This will get the group of settings specific to the environment
var envSettings = environmentSettings.Where(e => e.Environment.ToLower() == envName).FirstOrDefault();
// And last, I need to get the value for the specific setting that is being requested
string settingValue = envSettings.Where(e => e.???? == keyToGet ); // <---------- This is where I need help!
}
我不确定如何通过属性JsonProperty 属性进行查询。
谢谢!
【问题讨论】: