#c# #asp.net-core
Вопрос:
В appsettings.json
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*",
"book": [
{
"id": "555",
"language": "C",
"edition": "First",
"author": "Dennis Ritchie "
},
{
"id": "666",
"language": "C#",
"edition": "Second",
"author": "Anders Hejlsberg"
}
]
}
В Startup.cs я просто получаю одно значение по индексу, ниже я получаю по идентификатору
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.Run(async (context) =>
{
await context.Response.WriteAsync(Configuration.GetSection("book:0:id").Value);
});
}
Выше приведены мои коды, я получаю только одно значение, Как получить весь массив?
Спасибо!
Ответ №1:
Вы можете попробовать что-то вроде этого:
var list = new List<MyBookClass>();
Configuration.GetSection("book").Bind(list);
foreach(var book in list)
{
//do what ever you want with your list of books
}
Вам нужно будет добавить ссылку на пакет nuget Microsoft.Расширения.Конфигурация.Связующее вещество
Кроме того, вам нужно будет создать класс MyBook следующим образом:
public class MyBookClass
{
public string id { get; set; }
public string language { get; set; }
public string edition { get; set; }
public string author { get; set; }
}
Это распространенный шаблон для чтения настроек в asp.net сердечник
Затем вы можете делать со списком все, что захотите.