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

Görünüm: 2964|Yanıt: 0

[Kaynak] ASP.NET Core (yirmi beş) bağımlılıklar enjekte Tembel tembel tembel başlatma

[Bağlantıyı kopyala]
Yayınlandı 10.10.2023 21:14:31 | | | |
Gereksinimler: Çekirdek ASP.NET servisler ekleyin, hizmetleri üreticiler aracılığıyla enjekte edin ve uygulama sınıfını başlatmayı geciktirmek isteyin (HTTP bağlam isteği bilgisine göre farklı mantıksal işleme), tembel başlangıllaştırma için tembel için Lazy kullanmayı düşünün<T>.

Eleştiri:

C#'da tembellik konuları nasıl koruyor?
https://www.itsvse.com/thread-10621-1-1.html

C# performans optimizasyonu: Tembellik, gecikmeyle tembel başlatır <T>
https://www.itsvse.com/thread-7700-1-1.html
Doğrudan arayüze enjekte edin

Yapıcı doğrudan arayüz servisine enjekte edilir ve kod şu şekildedir:

İdam emri şöyledir:



Aşağıdaki yürütme sırasını görebilirsiniz: IA uygulama sınıfı -> HomeController konsolu -> indeks yöntemi

Tembel gecikme ile başlatma

Kontrolcü oluşturucu IA'yı Tembel olarak <IA>değiştirirse, hata şöyle görünecektir:

InvalidOperationException: Unable to resolve service for type 'System.Lazy`1[WebApplication6.IA]' while attempting to activate 'WebApplication6.Controllers.HomeController'.
Hata, tembel ile ilgili hizmetlere kayıt yapmamış olmamızdan kaynaklanıyor, Lazy<> genel bir hizmet kaydetmemiz gerekiyor, kod şu şekildedir:

Hizmete Ekle:

İdam emri şöyledir:



Uygulama sırasını görebilirsiniz: HomeController konsolu -> Index yöntemi -> IA uygulama sınıfı, görebilirsinizIA arayüz gecikmesi başlatmaçağrıldığında IA uygulama nesnesini başlatır.

(Son)





Önceki:CIDR: CIDR adres açıklamasını bir makalede okuyun
Önümüzdeki:Ön yüz, IndexedDB'nin localForage paketini saklar.
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