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

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

[İpucu] .NET/C# bağımlılık enjeksiyon hizmeti kaydı Scrutor aracı

[Bağlantıyı kopyala]
2025-9-4 09:37:00 tarihinde yayınlandı | | |
Gereksinimler: Proje nispeten büyük ve yazım sözdizimi çok standartlaşmışsa, bir arayüz eklediğimizde, arayüz yapıcıya enjekte edilebilmek için onu IServiceCollection konteynerine manuel olarak eklememiz gerekir. Scrutor aracı, kural yapılandırmamıza göre otomatik olarak eklemek için çok kullanışlı.

Scrutor

Microsoft.Extensions.DependencyInjection for assembly scanning and decorating extensions.

Kaynak kodu adresi:Bağlantı girişi görünür.

eleştiri

Hizmet kaydına bakıldığında, singleton enjeksiyonunun üç yolu şunlardır:

Hizmet kaydı

Diyelim ki böyle bir kod yapınız var:

Arayüz tanımları
public interface IUserService { }
public interface IOrderService { }

Uygulama sınıfı
public class UserService : IUserService { }
public class OrderService : IOrderService { }

önce

Kayıt tek tek gereklidir ve kod şu şekildedir:

Ya da kendi yönteminizi yazıp bunu yansıtma yoluyla kaydedebilirsiniz (Aslında, Scrutor da düşünce yoluyla), aşağıdaki gibi:

sonra

Scrutor, özellikle birden fazla hizmet sınıfını otomatik olarak kaydetmek için assemble taramasını çok kullanışlı hale getirir (örneğin, IUserService olarak kayıtlı UserService). Paket bağımlılıkları şunlardır:

Kod şöyledir:

Yorumu:
  • . <UserService>FromAssemblyOf(): Tarama yapacak montajı belirtir.
  • . AddClasses(): Assembly setindeki tüm sınıfları tarar.
  • . AsImplementedInterfaces(): Bu sınıflar için arayüzleri otomatik olarak kaydeder.
  • . WithScopedLifetime(): Ömrü Scoped olarak ayarlayın, bu aynı zamanda WithTransientLifetime() veya WithSingletonLifetime() olabilir.

(Son)




Önceki:.NET/C#, PDF'leri ImageMagick ve GhostScript temelli görsellere dönüştürür
Önümüzdeki:Alibaba Cloud, OSS'yi Linux sistem dizinine bağlar
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