Saya hanya ingin membaca string koneksi dari file konfigurasi dan untuk ini tambahkan file dengan nama "appsettings.json" ke proyek saya dan tambahkan konten ini ke dalamnya:
{
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=aspnet-
WebApplica71d622;Trusted_Connection=True;MultipleActiveResultSets=true"
},
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
}
}
}
Di ASP.NET saya menggunakan ini:
var temp=ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
Sekarang bagaimana saya bisa membaca "DefaultConnection" di C # dan menyimpannya pada variabel string di .NET Core?
c#
connection-string
asp.net-core-1.0
motevalizadeh
sumber
sumber
Jawaban:
Anda dapat melakukan ini dengan metode ekstensi GetConnectionString:
atau dengan kelas terstruktur untuk DI:
Memulai:
Dan kemudian di pengontrol rumah:
dengan ini di appsettings.json:
sumber
Configure
adalah metode ekstensi. Ini harus digunakan paling umum seperti ini:services.Configure<SmtpConfig>(Configuration.GetSection("Smtp"));
Tentu, ini hampir sama, tetapi saya pikir orang yang tidak sadar akan mulai melakukannya dengan cara yang "salah", menggunakan garis tanpa komentar, jadi mungkin yang terbaik adalah menghapus garis tersebut. ;)Jawaban yang diposting baik-baik saja tetapi tidak secara langsung menjawab pertanyaan yang sama dengan yang saya miliki tentang membaca dalam string koneksi. Melalui banyak pencarian, saya menemukan cara yang sedikit lebih sederhana untuk melakukan ini.
Di Startup.cs
Di pengontrol Anda, tambahkan bidang untuk konfigurasi dan parameter untuk itu pada konstruktor
Sekarang nanti dalam kode tampilan Anda, Anda dapat mengaksesnya seperti:
sumber
Lihat tautan untuk info lebih lanjut: https://docs.microsoft.com/en-us/ef/core/miscellaneous/connection-strings
JSON
C # Startup.cs
EDIT: aspnetcore, mulai 3.1: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/?view=aspnetcore-3.1
sumber
ConnectionStrings
bukanConnectionString
? Karena ketika saya digunakanConnectionString
, maka kami mendapatkan null.Microsoft.Extensions.Configuration
(3.1.5)Cara yang saya temukan untuk menyelesaikan ini adalah dengan menggunakan AddJsonFile di builder pada Startup (yang memungkinkannya menemukan konfigurasi yang disimpan dalam file appsettings.json) dan kemudian menggunakannya untuk menyetel variabel _config pribadi
Dan kemudian saya dapat mengatur string konfigurasi sebagai berikut:
Ini ada di dotnet core 1.1
sumber
ASP.NET Core ( dalam kasus saya 3.1 ) memberi kami suntikan Konstruktor ke Pengontrol , jadi Anda dapat menambahkan konstruktor berikut:
Berikut tampilan appsettings.json:
sumber
Ada pendekatan lain. Dalam contoh saya, Anda melihat beberapa logika bisnis di kelas repositori yang saya gunakan dengan injeksi ketergantungan di ASP .NET MVC Core 3.1.
Dan di sini saya ingin mendapatkan
connectiongString
logika bisnis itu karena mungkin repositori lain akan memiliki akses ke database lain sama sekali.Pola ini memungkinkan Anda dalam repositori logika bisnis yang sama memiliki akses ke database yang berbeda.
C #
appsettings.json
sumber
saya memiliki perpustakaan akses data yang bekerja dengan inti .net dan kerangka kerja .net.
Triknya ada di proyek inti .net untuk menyimpan string koneksi dalam file xml bernama "app.config" (juga untuk proyek web), dan menandainya sebagai 'salin ke direktori keluaran',
ConfigurationManager.ConnectionStrings - akan membaca string koneksi.
sumber
Anda dapat menggunakan metode ekstensi konfigurasi: getConnectionString ("DefaultConnection")
https://docs.asp.net/projects/api/en/latest/autoapi/Microsoft/Extensions/Configuration/ConfigurationExtensions/index.html#Microsoft.Extensions.Configuration.ConfigurationExtensions.GetConnectionString
sumber