W pliku appsettings.json
{
"MyArray": [
"str1",
"str2",
"str3"
]
}
W Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<IConfiguration>(Configuration);
}
W HomeController
public class HomeController : Controller
{
private readonly IConfiguration _config;
public HomeController(IConfiguration config)
{
this._config = config;
}
public IActionResult Index()
{
return Json(_config.GetSection("MyArray"));
}
}
Powyżej znajdują się moje kody, mam null Jak pobrać tablicę?
"Clients": [ {..}, {..} ]
, powinieneś wywołaćConfiguration.GetSection("Clients").GetChildren()
."Clients": [ "", "", "" ]
, powinieneś wywołać.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();
Możesz zainstalować następujące dwa pakiety NuGet:
Następnie będziesz mieć możliwość skorzystania z następującej metody rozszerzenia:
źródło
_config.GetSection("AppUser").Get<AppUser[]>();
Dodaj poziom w pliku appsettings.json:
Utwórz klasę reprezentującą Twoją sekcję:
W klasie startowej aplikacji powiąż model i wstrzyknij go do usługi DI:
W kontrolerze pobierz dane konfiguracyjne z usługi DI:
Możesz również przechowywać cały model konfiguracji we właściwości w kontrolerze, jeśli potrzebujesz wszystkich danych:
Usługa wstrzykiwania zależności ASP.NET Core działa jak urok :)
źródło
MySettings
w Startupie?Jeśli masz tablicę złożonych obiektów JSON, taką jak ta:
Możesz pobrać ustawienia w ten sposób:
źródło
Pomogło mi to zwrócić tablicę ciągów z mojej konfiguracji:
Moja sekcja konfiguracji wygląda następująco:
źródło
W przypadku zwracania tablicy złożonych obiektów JSON z konfiguracji, dostosowałem odpowiedź @ djangojazz tak, aby używała anonimowych typów i dynamicznych zamiast krotek.
Biorąc pod uwagę sekcję ustawień:
Możesz zwrócić tablicę obiektów w ten sposób:
źródło
Niby stare pytanie, ale mogę udzielić odpowiedzi zaktualizowanej dla .NET Core 2.1 ze standardami C # 7. Powiedzmy, że mam listę tylko w appsettings.Development.json, na przykład:
Mogę je wyodrębnić wszędzie tam, gdzie Microsoft.Extensions.Configuration.IConfiguration jest zaimplementowana i okablowana w następujący sposób:
Teraz mam listę dobrze wpisanego obiektu, który jest dobrze wpisany. Jeśli przejdę do testuUsers.First (), program Visual Studio powinien teraz wyświetlać opcje dla „Nazwa użytkownika”, „E-mail” i „Hasło”.
źródło
W ASP.NET Core 2.2 i nowszych możemy wstrzyknąć IConfiguration w dowolnym miejscu w naszej aplikacji, tak jak w twoim przypadku, możesz wstrzyknąć IConfiguration w HomeController i użyć w ten sposób, aby uzyskać tablicę.
źródło
Możesz uzyskać tablicę bezpośrednio bez zwiększania nowego poziomu w konfiguracji:
źródło
Skrócona forma:
Zwraca tablicę ciągów:
źródło
To zadziałało dla mnie; Utwórz plik json:
Następnie zdefiniuj klasę, która odwzorowuje:
pakiety nuget:
Następnie załaduj go:
źródło