Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 57373|Jawab: 4

[Sumber] ASP.NET Core (VI) DI secara manual memperoleh metode penyuntikan objek

[Salin tautan]
Dipaparkan pada 2021-3-19 15:13:15 | | |
Tutorial tentang ASP.NET Injeksi Dependensi Inti, Inversi Kontrol (DI IOC):

ASP.NET Injeksi dependensi inti menggunakan kontainer IOC yang menyertainya
https://www.itsvse.com/thread-7562-1-1.html


Resensi:

ASP.NET Core (lima) didasarkan pada transaksi distribusi CAP
https://www.itsvse.com/thread-9593-1-1.html

ASP.NET Core(4) memfilter validasi model ModelState terpadu
https://www.itsvse.com/thread-9589-1-1.html

ASP.NET Inti (iii) Membuat instans secara dinamis menggunakan ActivatorUtilities
https://www.itsvse.com/thread-9488-1-1.html

ASP.NET Inti (2) Mulai ulang aplikasi dengan kode
https://www.itsvse.com/thread-9480-1-1.html

ASP.NET Core (1) menggunakan caching Redis
https://www.itsvse.com/thread-9393-1-1.html
Injeksi dependensi secara singkat:

Injeksi dependensi (DI) adalah teknik yang mengimplementasikan kopling longgar antara objek dan kolaborator atau dependensinya. Berikan objek ini yang digunakan kelas untuk melakukan operasinya ke kelas dengan cara tertentu, daripada secara langsung membuat instance kolaborator atau menggunakan referensi statis.

ASP.NET Core DI umumnya menggunakan injeksi konstruktor untuk mendapatkan objek, seperti setelah mengonfigurasi injeksi ConfigureServices, dapat diperoleh dengan cara berikut:


Bagaimana jika Anda mendapatkan objek injeksi secara manual?

Cara pertama untuk mendapatkannya(Terkadang Anda tidak bisa mendapatkannya,Tidak disarankan):


Cara kedua untuk mendapatkannyaPenggunaan yang direkomendasikan):

Catatan: Perlu dicatat bahwa menggunakan ServiceLocator.Instance.GetService<T>(); ,Hanya objek yang disuntikkan oleh AddTransient dan AddSingleton yang dapat diambil, dan tidak dapat memperoleh objek AddScoped yang disuntikkan (unik dalam siklus hidup permintaan), bukan karena tidak dapat diperoleh, tetapi karena objek yang diperoleh tidak diperoleh oleh konstruktor, yaitu, objek yang diperoleh tidak dibagikan, dan skenario penggunaannya seperti IUnitOfWork.

Jadi bagaimana Anda mendapatkan objek injeksi secara manual selama siklus hidup permintaan? Begini caranya:


atau

Antarmuka IHttpContextAccessor berada di bawah paket Microsoft.AspNetCore.Http.AbstractionsNuget.




Mantan:HttpClient POST langsung untuk mengirim permintaan kompresi byte byte (gzip)
Depan:Perbedaan antara kompiler Roslyn MSBuild
Dipaparkan pada 2021-9-22 20:43:14 |
Belajar untuk belajar...
Dipaparkan pada 2021-9-22 20:55:17 |
Belajar untuk belajar...
Dipaparkan pada 2022-6-17 16:05:39 |
Pelajari cara menggunakannya
 Tuan tanah| Dipaparkan pada 2024-12-30 17:09:09 |
Konsol menyuntikkan antarmuka IHttpContextAccessor:



Layanan konsol .NET/C# terdaftar dengan penemuan layanan Consul
https://www.itsvse.com/thread-10899-1-1.html
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com