Tüm amacı iki veri kaynağını tüketmek ve benzerlikleri ve farklılıkları açığa çıkarmak olan bir uygulama yazıyorum (bir ASP.NET web API'sı aracılığıyla görünür).Aynı arabirimi uygulayan iki nesneye bağımlılığı olan Basit Enjektör
public class FooController : WebAPI
{
public FooController(IFooRepository repoFromSourceA, IFooRepository repoFromSourceB)
{
...
}
}
bir (kaynağı A ve SourceB dönüşüm gerçekleştiremez) container.RegisterCollection(..)
imkansız (veya çok tehlikeli) kullanmak için yapmak gibi görünüyor hangi kaynağın ait olduğu ayrım bakımı: Yani API aşağıdaki kurulum vardır. Ayrıca, bir sınıf her iki uygulamayı da tüketiyor olduğundan, dekoratör uyumsuz gibi görünüyor.
Bu bağımlılık enjeksiyonunu nasıl kurabilirim?
Kimsenin bu soruyu cevaplayabilmesinden önce en önemli soru, iki argümanın (yanlışlıkla) değiştirilmesinin ardından FooController’a ne olacağıdır. Yani yeni FooController'ı (yeni RepoB(), yeni RepoA()) 'nı derlersek, FooController 'hala düzgün çalışır mı yoksa kırılır mı (örneğin bir istisna atar)? – Steven
Kırılmaz (istisnalar atılmaz), ancak API arayan kişiye yalan söyler. Bazı aramalar, "A'da var olan ama bana B'de olmayan öğeler ver" biçimindedir. Takas edildiyse, arayanlar öğeleri (veya hiçbir eşyayı) geri alır, ancak sonuç hatalı olur. –