Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 57373|Yanıt: 4

[Kaynak] ASP.NET Core (VI) DI, nesneleri enjekte etme yöntemini manuel olarak elde eder

[Bağlantıyı kopyala]
2021-3-19 tarihinde 15:13:15 tarihinde yayınlandı | | |
ASP.NET Core Dependency Injection, Control Inversion (DI IOC) üzerine eğitim:

ASP.NET Çekirdek bağımlılık enjeksiyonu, beraberinde gelen IOC konteynerini kullanır
https://www.itsvse.com/thread-7562-1-1.html


Eleştiri:

ASP.NET Core (beş) CAP dağıtık işlemlere dayanmaktadır
https://www.itsvse.com/thread-9593-1-1.html

ASP.NET Core(4) filtresi birleşik ModelState model validasyonu
https://www.itsvse.com/thread-9589-1-1.html

ASP.NET Core (iii) ActivatorUtilities kullanarak dinamik örnekler oluşturun
https://www.itsvse.com/thread-9488-1-1.html

ASP.NET Çekirdek (2) Uygulamayı kodla yeniden başlat
https://www.itsvse.com/thread-9480-1-1.html

ASP.NET Core (1) Redis önbellekleme kullanır
https://www.itsvse.com/thread-9393-1-1.html
Özetle bağımlılık enjeksiyonu:

Bağımlılık enjeksiyonu (DI), bir nesne ile işbirlikçileri veya bağımlılıkları arasında gevşek bir bağlantı sağlayan bir tekniktir. Sınıfın işlemlerini gerçekleştirmek için kullandığı bu nesneleri, doğrudan işbirlikçileri oluşturmak veya statik referanslar kullanmak yerine, sınıfa bir şekilde sunun.

ASP.NET Core DI genellikle ConfigureServices enjeksiyonu yapılandırıldıktan sonra nesneleri elde etmek için üretici enjeksiyonu kullanır, bu aşağıdaki şekillerde elde edilebilir:


Ya enjeksiyon nesnesini manuel olarak alırsanız?

İlk şekilde elde etmek(Bazen bulamazsın,Tavsiye edilmiyor):


İkinci yolÖnerilen kullanım):

Not: ServiceLocator.Instance.GetService<T>() kullanıldığında; ,Sadece AddTransient ve AddSingleton tarafından enjekte edilen nesneler alınabilir, ve AddScoped'un enjekte edilen nesnesini (istek yaşam döngüsünde benzersiz) elde edemez; çünkü elde edilemez değil, elde edilen nesne üretici tarafından elde edilmez, yani elde edilen nesne paylaşılmazdır ve kullanım senaryosu IUnitOfWork gibidir.

Peki istek yaşam döngüsü boyunca enjeksiyon nesnelerini manuel olarak nasıl elde ediyorsunuz? İşte nasıl yapılacak:


veya

IHttpContextAccessor arayüzü Microsoft.AspNetCore.Http.AbstractionsNuget paketi altındadır.




Önceki:HttpClient POST'u doğrudan bayt bayt (gzip) sıkıştırma isteklerini göndermek için
Önümüzdeki:Roslyn MSBuild derleyicisi arasındaki fark
2021-9-22 tarihinde 20:43:14 tarihinde yayınlandı |
Öğrenmeyi öğren...
2021-9-22 tarihinde yayınlandı 20:55:17 |
Öğrenmeyi öğren...
2022-6-17 tarihinde 16:05:39 tarihinde yayınlandı |
Nasıl kullanılacağını öğrenin
 Ev sahibi| 2024-12-30 tarihinde 17:09:09 tarihinde yayınlandı |
Konsol, IHttpContextAccessor arayüzünü enjekte eder:



.NET/C# konsol hizmetleri Consul hizmet keşifiyle kayıtlıdır
https://www.itsvse.com/thread-10899-1-1.html
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com