In appsettings.json
{
"MyArray": [
"str1",
"str2",
"str3"
]
}
In Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<IConfiguration>(Configuration);
}
In HomeController
public class HomeController : Controller
{
private readonly IConfiguration _config;
public HomeController(IConfiguration config)
{
this._config = config;
}
public IActionResult Index()
{
return Json(_config.GetSection("MyArray"));
}
}
Es gibt meine Codes oben, ich habe null Wie bekomme ich das Array?
"Clients": [ {..}, {..} ]
, sollten Sie aufrufenConfiguration.GetSection("Clients").GetChildren()
."Clients": [ "", "", "" ]
, sollten Sie aufrufen.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();
Sie können die folgenden zwei NuGet-Pakete installieren:
Und dann haben Sie die Möglichkeit, die folgende Erweiterungsmethode zu verwenden:
quelle
_config.GetSection("AppUser").Get<AppUser[]>();
Fügen Sie eine Ebene in Ihre appsettings.json hinzu:
Erstellen Sie eine Klasse, die Ihren Abschnitt darstellt:
Binden Sie in Ihrer Anwendungsstartklasse Ihr Modell und fügen Sie es in den DI-Dienst ein:
Und in Ihrem Controller erhalten Sie Ihre Konfigurationsdaten vom DI-Dienst:
Sie können Ihr gesamtes Konfigurationsmodell auch in einer Eigenschaft in Ihrem Controller speichern, wenn Sie alle Daten benötigen:
Der Abhängigkeitsinjektionsdienst des ASP.NET Core funktioniert wie ein Zauber :)
quelle
MySettings
in Startup?Wenn Sie ein Array komplexer JSON-Objekte wie dieses haben:
Sie können Einstellungen folgendermaßen abrufen:
quelle
Dies funktionierte für mich, um ein Array von Zeichenfolgen aus meiner Konfiguration zurückzugeben:
Mein Konfigurationsabschnitt sieht folgendermaßen aus:
quelle
Für den Fall, dass ein Array komplexer JSON-Objekte aus der Konfiguration zurückgegeben wird, habe ich die Antwort von @ djangojazz so angepasst , dass anonyme Typen und dynamische anstelle von Tupeln verwendet werden.
Gegeben ein Einstellungsabschnitt von:
Sie können das Objektarray folgendermaßen zurückgeben:
quelle
Eine alte Frage, aber ich kann eine für .NET Core 2.1 aktualisierte Antwort mit C # 7-Standards geben. Angenommen, ich habe eine Auflistung nur in appsettings.Development.json wie:
Ich kann sie überall dort extrahieren, wo die Microsoft.Extensions.Configuration.IConfiguration wie folgt implementiert und verkabelt ist:
Jetzt habe ich eine Liste eines gut typisierten Objekts, das gut typisiert ist. Wenn ich testUsers.First () gehe, sollte Visual Studio jetzt Optionen für 'Benutzername', 'E-Mail' und 'Passwort' anzeigen.
quelle
In ASP.NET Core 2.2 und höher können wir IConfiguration an einer beliebigen Stelle in unserer Anwendung einfügen, wie in Ihrem Fall. Sie können IConfiguration in HomeController einfügen und auf diese Weise das Array abrufen.
quelle
Sie können das Array direkt abrufen, ohne eine neue Ebene in der Konfiguration zu erhöhen:
quelle
Kurzform:
Es gibt ein Array von Zeichenfolgen zurück:
quelle
Das hat bei mir funktioniert; Erstellen Sie eine JSON-Datei:
Definieren Sie dann eine Klasse, die zugeordnet ist:
Nuget-Pakete:
Dann laden Sie es:
quelle