IConfiguration.GetSection 使用 Where 选择器
IConfiguration.GetSection with Where selector
我正在使用 IConfiguration.GetSection 从配置文件中检索配置信息:
var loggingProviders = Config.GetSection( "Logging" ).Get<LoggingProviders>();
效果很好,但我只想检索已启用的条目,因此我想执行以下任一操作:
var loggingProviders = Config.GetSection( "Logging" ).Get<LoggingProviders>().Where( x => x.Enabled == true );
var loggingProviders = Config.GetSection( "Logging" ).Where( x => x.Enabled == true ).Get<LoggingProviders>();
但我总是走入死胡同,如有任何建议,我们将不胜感激!
如果要使用.Where
,需要是列表,这里有一个demo:
public class LoggingProviders
{
public int Id { get; set; }
public bool Enabled { get; set; }
}
appsettings.json:
"Logging1": [
{
"Id": "1",
"Enabled": "true"
},
{
"Id": "2",
"Enabled": "true"
},
{
"Id": "3",
"Enabled": "false"
}
]
启动:
public IConfiguration Configuration { get; }
...
List<LoggingProviders> loggingProviders = Configuration.GetSection("Logging1").Get<List<LoggingProviders>>().Where(x => x.Enabled == true).ToList();
结果:
如果你没有得到列表,想使用.where
,你可以尝试将其更改为列表first.Here是一个演示。
appsettings.json:
"Logging1":
{
"Id": "1",
"Enabled": "true"
},
启动:
public IConfiguration Configuration { get; }
...
List<LoggingProviders> l= new List<LoggingProviders>();
l.Add(Configuration.GetSection("Logging1").Get<LoggingProviders>());
List<LoggingProviders> loggingProviders = l.Where(x => x.Enabled == true).ToList();
结果:
我正在使用 IConfiguration.GetSection 从配置文件中检索配置信息:
var loggingProviders = Config.GetSection( "Logging" ).Get<LoggingProviders>();
效果很好,但我只想检索已启用的条目,因此我想执行以下任一操作:
var loggingProviders = Config.GetSection( "Logging" ).Get<LoggingProviders>().Where( x => x.Enabled == true );
var loggingProviders = Config.GetSection( "Logging" ).Where( x => x.Enabled == true ).Get<LoggingProviders>();
但我总是走入死胡同,如有任何建议,我们将不胜感激!
如果要使用.Where
,需要是列表,这里有一个demo:
public class LoggingProviders
{
public int Id { get; set; }
public bool Enabled { get; set; }
}
appsettings.json:
"Logging1": [
{
"Id": "1",
"Enabled": "true"
},
{
"Id": "2",
"Enabled": "true"
},
{
"Id": "3",
"Enabled": "false"
}
]
启动:
public IConfiguration Configuration { get; }
...
List<LoggingProviders> loggingProviders = Configuration.GetSection("Logging1").Get<List<LoggingProviders>>().Where(x => x.Enabled == true).ToList();
结果:
如果你没有得到列表,想使用.where
,你可以尝试将其更改为列表first.Here是一个演示。
appsettings.json:
"Logging1":
{
"Id": "1",
"Enabled": "true"
},
启动:
public IConfiguration Configuration { get; }
...
List<LoggingProviders> l= new List<LoggingProviders>();
l.Add(Configuration.GetSection("Logging1").Get<LoggingProviders>());
List<LoggingProviders> loggingProviders = l.Where(x => x.Enabled == true).ToList();
结果: