«dependency-injection» etiketlenmiş sorular

Bağımlılık Enjeksiyonu, bir bileşenin bağımlılıklarının (nesne örnekleri, özellikler) yapıcı (lar), yöntemler veya alanlar (özellikler) aracılığıyla ayarlandığı bir tasarım modelidir. Daha genel bağımlılık tersinin özel bir şeklidir.

5
Kapsüllemeyi bozmadan Bağımlılık Enjeksiyonunu kullanabilir miyim?
İşte benim Çözümüm ve projelerim: BookStore (çözüm) BookStore.Coupler (proje) Bootstrapper.cs BookStore.Domain (proje) CreateBookCommandValidator.cs CompositeValidator.cs IValidate.cs IValidator.cs ICommandHandler.cs BookStore.Altyapı (proje) CreateBookCommandHandler.cs ValidationCommandHandlerDecorator.cs BookStore.Web (proje) Global.asax BookStore.BatchProcesses (proje) program.cs Bootstrapper.cs : public static class Bootstrapper.cs { // I'm using SimpleInjector as my DI Container public static void Initialize(Container container) { container.RegisterManyForOpenGeneric(typeof(ICommandHandler<>), typeof(CreateBookCommandHandler).Assembly); …

3
Tek bir uygulama oluşturan çokluk. Umutsuz mu? Servis bulucu mu kullanıyorsunuz?
Enjeksiyonları kabul etmek yerine doğrudan bağımlılıklarını oluşturan 1001 müşterimiz olduğunu varsayalım. Patronumuza göre 1001'i yeniden düzenlemek bir seçenek değil. Aslında kaynaklarına erişime bile izin verilmiyor, sadece sınıf dosyalarına. Yapmamız gereken, bu 1001 müşterinin geçtiği sistemi "modernize etmek" tir. İstediğimiz her şeyi yeniden düzenleyebiliriz. Bağımlılıklar bu sistemin bir parçasıdır. Ve bu …

5
Aşağıdaki TDD kaçınılmaz olarak DI'ya yol açıyor mu?
Teste Dayalı Geliştirme (TDD), Bağımlılık Enjeksiyonu (DI) ve Kontrolün İnversiyonu (IoC) aynı anda yapmayı öğrendim. TDD kullanarak kod yazdığımda sınıfımın yapıcılarında daima DI'yi kullanıyorum. Bunun TDD yapmayı nasıl öğrendiğimden mi yoksa TDD'nin doğal bir yan etkisi mi olduğunu merak ediyorum. Benim sorum şu: Harici hizmetlere bağlı olmayan TDD ilkelerini ve …

3
Zavallı Adamın Bağımlılık Enjeksiyonu, eski bir uygulamaya test edilebilirliği tanıtmak için iyi bir yol mu?
Geçen yıl, Bağımlılık Enjeksiyonu ve bir IOC kapsayıcısı kullanarak yeni bir sistem oluşturdum. Bu bana DI hakkında çok şey öğretti! Ancak, kavramları ve uygun kalıpları öğrendikten sonra bile, kodu çözmek ve bir IOC kapsayıcısını eski bir uygulamaya tanıtmak için bir zorluk olduğunu düşünüyorum. Uygulama, gerçek bir uygulamanın ezici olacağı noktaya …

3
MVVM ve servis düzeni
MVVM desenini kullanarak bir WPF uygulaması inşa ediyorum. Şu anda, görünüm modellerim modelleri (görünüm modeliyle nasıl ilgili değil) almak ve bunları görünüm modellerine dönüştürmek için hizmet katmanını çağırıyor. Viewmodel için gerekli hizmeti geçmek için yapıcı enjeksiyon kullanıyorum. Kolayca test edilebilir ve birkaç bağımlılığa sahip görünüm modelleri için iyi çalışır, ancak …

4
Bu şekilde bu kodu yazıyorum test edilebilir, ancak eksik bir şey var mı?
Adında bir arayüz var IContext. Bunun amaçları için, aşağıdakiler dışında ne yaptığı gerçekten önemli değildir: T GetService<T>(); Bu yöntemin yaptığı, uygulamanın geçerli DI kapsayıcısına bakmak ve bağımlılığı çözümlemeye çalışmaktır. Bence oldukça standart. ASP.NET MVC uygulamamda kurucum şöyle görünüyor. protected MyControllerBase(IContext ctx) { TheContext = ctx; SomeService = ctx.GetService<ISomeService>(); AnotherService = …

6
Bağımlılık enjeksiyon çerçeveleri için argümanlardan birini sorgulamak: Nesne grafiği oluşturmak neden zor?
Google Guice gibi bağımlılık enjeksiyon çerçeveleri kullanımları için aşağıdaki motivasyonu sağlar ( kaynak ): Bir nesneyi oluşturmak için önce bağımlılıklarını oluşturursunuz. Ancak her bağımlılığı inşa etmek için bağımlılıklarına ihtiyacınız var vb. Bu nedenle, bir nesne oluşturduğunuzda, gerçekten bir nesne grafiği oluşturmanız gerekir. Elle nesne grafikleri oluşturmak emek yoğundur (...) ve …

3
Bağımlılık enjeksiyon çerçeveleri bir bağımlılık riski oluşturuyor mu?
Bağımlılık enjeksiyonunu kullanmak için mevcut bir sistemi yeniden düzenledim ve bu iş sorunsuz ilerliyor. Bir süre sonra çok sayıda kurum içi kütüphanenin kullandığım DI çerçevesine bağımlı hale geldiğini fark ettim. Sonuç olarak, tüm proje şimdi bu üçüncü taraf çerçevesine dayanmaktadır. Tüm bağımlılıkları ortak bir kütüphaneye bağımlı hale getirerek bir ironi …

3
Bağımlılık enjeksiyonu: Hangi noktada yeni bir nesne oluşturabilirim?
Ben bir PHP uygulaması refactoring ve yapmaya çalışıyorum mümkün olduğunca çok bağımlılık enjeksiyon (DI) vardır. Nasıl çalıştığını iyi anladım ve sınıflarımın çok daha yalın ve daha sağlam olduğunu görebiliyorum. Sınıf içinde yeni bir nesne oluşturmak yerine bir bağımlılık enjekte edebilir, ancak bir noktada bazı nesneler oluşturmak zorunda kalacağım, yani, dreaded …

4
Elle bağımlılık enjeksiyonu kompozisyon ve polimorfizme daha iyi bir alternatif mi?
İlk olarak ben bir giriş seviyesi programcısıyım; Aslına bakılırsa, bir AS derecesini yaz boyunca bir final capstone projesi ile bitiriyorum. Yeni işimde, yapacak bir proje olmadığında (takımı daha yeni işe alımlarla doldurmayı bekliyorlar), beklediğimde okumak ve öğrenmek için kitaplar verildi - bazı ders kitapları, diğerleri çok fazla değil (Kod Tamamlandı …

8
Zaman uyumsuz işlevleri gösteren bir arabirim sızdıran bir soyutlama mı?
Bağımlılık Enjeksiyon Prensipleri, Uygulamaları ve Desenler kitabını okuyorum ve kitapta iyi tarif edilen sızdıran soyutlama kavramını okudum. Bu gün bağımlılık enjeksiyon kullanarak bir C # kod tabanı refactoring böylece engelleme yerine async çağrıları kullanılır. Bunu yaparken kod tabanımdaki soyutlamaları temsil eden ve zaman uyumsuz çağrıların kullanılabilmesi için yeniden tasarlanması gereken …

4
Bağımlılık enjeksiyonunun tersini göstermek için teknik terim?
Bu sadece teknik bir sorudan ziyade bir isimlendirmedir (teknik yazı). Uygulamamızda bağımlılık enjeksiyonunu genişletmeye odaklanmış bir yeniden düzenleme teklifi yazmaya çalışıyorum (ve kendime atandım). Bu tür kullanımın yapmak ederken Bahar fasulye Autowiring için, örneğini fasulye kullanarak o örneklerini hala var MyClass obj = new MyClass(...)tamamen enjekte edilebilir. Teklifimin zarif terminolojiyi …

2
Bağımlılık enjeksiyon stilleri arasındaki pratik fark nedir?
Bağımlılık enjeksiyonunda yeniyim ve uygulamalarımda hangi stili kullanmam gerektiği hakkında birkaç sorum var. Martin Fowler'ın Kontrol Kapsayıcılarının İnversiyonu ve Bağımlılık Enjeksiyon kalıbını yeni okudum , ancak yapıcı, ayarlayıcı ve arayüz enjeksiyonu arasındaki pratik farkı alamıyorum. Bana öyle geliyor ki birini diğerinin üzerinde kullanma nedenleri sadece kod temizleme ve / veya …

2
N-katmanlı Entity Framework çözümü ile bağımlılık enjeksiyonu
Şu anda, veri erişim stratejisi olarak Entity Framework 5'i (.net 4) kullanan n katmanlı bir çözüm tasarlıyorum, ancak test edilebilir / esnek hale getirmek için bağımlılık enjeksiyonunu nasıl dahil edeceğim konusunda endişeliyim. Mevcut çözüm düzenim aşağıdaki (çözümüm Alcatraz olarak adlandırılıyor): Alcatraz.WebUI : Bir asp.net webform projesi, ön uç kullanıcı arayüzü, …

3
IValidatableObject ve Tek Sorumluluk
Görünüm modellerinin IValidatableObject uygulamak ve özel doğrulama eklemek için izin MVC genişletilebilirlik noktasını seviyorum. Bu kod tek doğrulama mantığı olması, Denetleyicilerim yalın tutmaya çalışın: if (!ModelState.IsValid) return View(loginViewModel); Örneğin, bir giriş görünümü modeli IValidatableObject uygular, yapıcı enjeksiyonu yoluyla ILoginValidator nesnesini alır: public interface ILoginValidator { bool UserExists(string email); bool IsLoginValid(string …

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.