我正在尝试为我的dotnet核心项目实施一个简单的配置服务。
如果在添加的任何配置文件中没有请求配置部分,我想return null
。
我目前检索配置部分的代码:
private static IConfigurationRoot _configuration { get; set; }
private static IConfigurationBuilder _builder;
public JsonConfigService()
{
_builder = new ConfigurationBuilder();
}
public T GetConfigModel<T>(string name) where T : new()
{
if (string.IsNullOrWhiteSpace(name))
return default(T);
var section = _configuration.GetSection(name);
if (section == null || string.IsNullOrWhiteSpace(section.Value))
return default(T);
var value = new T();
section.Bind(value);
return value;
}
public void RegisterSource(string source)
{
_builder.AddJsonFile(source);
_configuration = _builder.Build();
}
问题是:
section.Value
始终为null(仅针对复杂类型进行测试)如何在绑定之前找出配置部分“NotHere”是否实际上在json文件中?
答案 0 :(得分:0)
如果配置中不存在该部分,则使用GetValue
方法而不是GetSection
会返回null
。
用法:
public T GetConfigModel<T>(string name) where T : new()
{
if (string.IsNullOrWhiteSpace(name))
return default(T);
try
{
return _configuration.GetValue<T>(name);
}
catch (Exception ex)
{
throw ex;
}
}