В appsettings.json
{
"MyArray": [
"str1",
"str2",
"str3"
]
}
В Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<IConfiguration>(Configuration);
}
В HomeController
public class HomeController : Controller
{
private readonly IConfiguration _config;
public HomeController(IConfiguration config)
{
this._config = config;
}
public IActionResult Index()
{
return Json(_config.GetSection("MyArray"));
}
}
Есть мои коды выше, я получил NULL Как получить массив?
c#
asp.net-core
asp.net-core-mvc
Максимум
источник
источник
"Clients": [ {..}, {..} ]
, вы должны вызватьConfiguration.GetSection("Clients").GetChildren()
."Clients": [ "", "", "" ]
, вы должны вызвать.GetSection("Clients").GetChildren().ToArray().Select(c => c.Value).ToArray()
.var clients = Configuration.GetSection("Clients").GetChildren() .Select(clientConfig => new Client { ClientId = clientConfig["ClientId"], ClientName = clientConfig["ClientName"], ... }) .ToArray();
Вы можете установить следующие два пакета NuGet:
И тогда у вас будет возможность использовать следующий метод расширения:
источник
_config.GetSection("AppUser").Get<AppUser[]>();
Добавьте уровень в ваш appsettings.json:
Создайте класс, представляющий ваш раздел:
В своем классе запуска приложения свяжите свою модель и внедрите ее в службу DI:
И в вашем контроллере получите данные конфигурации из службы DI:
Вы также можете сохранить всю свою конфигурационную модель в свойстве контроллера, если вам нужны все данные:
Служба внедрения зависимостей в ядре ASP.NET работает как шарм :)
источник
MySettings
при запуске?Если у вас есть массив сложных объектов JSON, например:
Вы можете получить настройки следующим образом:
источник
Это сработало для меня, чтобы вернуть массив строк из моей конфигурации:
Мой раздел конфигурации выглядит так:
источник
Для случая возврата массива сложных объектов JSON из конфигурации я адаптировал ответ @ djangojazz для использования анонимных типов и динамических, а не кортежей.
Учитывая раздел настроек:
Вы можете вернуть массив объектов следующим образом:
источник
Вроде старый вопрос, но я могу дать обновленный ответ для .NET Core 2.1 со стандартами C # 7. Скажем, у меня есть список только в appsettings.Development.json, например:
Я могу извлечь их в любом месте, где Microsoft.Extensions.Configuration.IConfiguration реализована и подключена следующим образом:
Теперь у меня есть список хорошо напечатанных объектов. Если я перехожу к testUsers.First (), Visual Studio теперь должна отображать параметры для «UserName», «Email» и «Password».
источник
В ASP.NET Core 2.2 и более поздних версиях мы можем внедрить IConfiguration в любом месте нашего приложения, как в вашем случае, вы можете внедрить IConfiguration в HomeController и использовать его для получения массива.
источник
Вы можете получить массив напрямую без приращения нового уровня в конфигурации:
источник
Короткая форма:
Возвращает массив строк:
источник
Это сработало для меня; Создайте некоторый файл JSON:
Затем определите некоторый класс, который отображает:
Пакеты Nuget:
Затем загрузите его:
источник