Junior — Middle
Aynı konteyner içinde bir arayüzün birden fazla uygulamasını kaydetmek mümkün mü?
sobes.tech yapay zeka
AI'dan gelen yanıt
Evet, C#'ta bağımlılık enjeksiyonu (DI) konteynerlerinde aynı arayüzün birkaç uygulamasını kaydetmek mümkündür. Bu genellikle farklı davranış seçeneklerine ihtiyaç duyulduğunda ve bunlar bağlama göre seçilebildiğinde yapılır.
Örneğin, Microsoft.Extensions.DependencyInjection'da birkaç uygulamayı şu şekilde kaydedebilirsiniz:
services.AddTransient<IService, ServiceImplementationA>();
services.AddTransient<IService, ServiceImplementationB>();
IEnumerable<IService> talep edildiğinde, konteyner tüm kaydedilen uygulamaları döndürür. Sadece IService talep edilirse, en son kaydedilen uygulama döndürülür (bu, belirli DI konteynerine bağlıdır).
Belirli bir uygulamayı seçmek için genellikle isimlendirilmiş kayıtlar veya fabrikalar kullanılır veya IEnumerable<IService> enjekte edilip programatik olarak istenen uygulama seçilir.