Di appsettings.json
{
"MyArray": [
"str1",
"str2",
"str3"
]
}
Di Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<IConfiguration>(Configuration);
}
Di HomeController
public class HomeController : Controller
{
private readonly IConfiguration _config;
public HomeController(IConfiguration config)
{
this._config = config;
}
public IActionResult Index()
{
return Json(_config.GetSection("MyArray"));
}
}
Ada kode saya di atas, saya mendapat null. Bagaimana cara mendapatkan array?
"Clients": [ {..}, {..} ]
, Anda harus memohonConfiguration.GetSection("Clients").GetChildren()
."Clients": [ "", "", "" ]
, Anda harus memohon.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();
Anda dapat menginstal dua paket NuGet berikut:
Dan Anda akan memiliki kemungkinan untuk menggunakan metode ekstensi berikut:
sumber
_config.GetSection("AppUser").Get<AppUser[]>();
Tambahkan level di appsettings.json Anda:
Buat kelas yang mewakili bagian Anda:
Di kelas startup aplikasi Anda, ikat model Anda dan masukkan dalam layanan DI:
Dan di controller Anda, dapatkan data konfigurasi Anda dari layanan DI:
Anda juga dapat menyimpan seluruh model konfigurasi di properti di controller Anda, jika Anda membutuhkan semua data:
Layanan injeksi ketergantungan ASP.NET Core bekerja seperti pesona :)
sumber
MySettings
Startup?Jika Anda memiliki array objek JSON kompleks seperti ini:
Anda dapat mengambil pengaturan dengan cara ini:
sumber
Ini berfungsi agar saya mengembalikan array string dari konfigurasi saya:
Bagian konfigurasi saya terlihat seperti ini:
sumber
Untuk kasus mengembalikan array objek JSON kompleks dari konfigurasi, saya telah mengadaptasi jawaban @ djangojazz untuk menggunakan tipe anonim dan dinamis daripada tupel.
Diberikan bagian pengaturan:
Anda dapat mengembalikan array objek dengan cara ini:
sumber
Agak pertanyaan lama, tapi saya bisa memberikan jawaban yang diperbarui untuk .NET Core 2.1 dengan standar C # 7. Katakanlah saya memiliki daftar hanya di appsettings.Development.json seperti:
Saya dapat mengekstraknya di mana saja bahwa Microsoft.Extensions.Configuration.IConfiguration diimplementasikan dan dihubungkan seperti ini:
Sekarang saya memiliki daftar objek yang diketik dengan baik yang diketik dengan baik. Jika saya menggunakan testUsers.First (), Visual Studio sekarang akan menampilkan opsi untuk 'UserName', 'Email', dan 'Password'.
sumber
Dalam ASP.NET Core 2.2 dan yang lebih baru kita dapat menyuntikkan IConfiguration di mana saja di aplikasi kita seperti dalam kasus Anda, Anda dapat menyuntikkan IConfiguration di HomeController dan gunakan seperti ini untuk mendapatkan array.
sumber
Anda bisa mendapatkan array langsung tanpa menambah level baru dalam konfigurasi:
sumber
Bentuk pendek:
Ini mengembalikan array string:
sumber
Ini bekerja untuk saya; Buat beberapa file json:
Kemudian, tentukan beberapa kelas yang memetakan:
paket nuget:
Kemudian, muat:
sumber