Tamam Bence bu Windsor Logan hakkında bilgi çok fazla olduğunu düşünüyorum çünkü bu anahtar kelimeler arıyor bana her şeyi örnekler verir ve açıkçası nasıl çalıştığını hakkında yeterince anlamadım Bunu düzgün bir şekilde sorun. Bu noktada çok az şansla çok az permütasyon denedim.Castle Windsor IoC Mülk Enjeksiyon basit nasıl yapılır
Tekil olarak oluşturmak istediğim bir IUnitOfWorkFactory
sahibim.
iocContainer = new WindsorContainer()
.Install(FromAssembly.This());
var propInjector = iocContainer.Register(
Component.For<IUnitOfWorkFactory>()
.LifestyleSingleton()
.Instance(new NHUnitOfWorkFactory())
);
propInjector.Resolve<IUnitOfWorkFactory>();
Bu benim Application_Start
yöntemle çağrılan: Yani, şöyle kod biraz yazma, Kale Windsor yükleyin.
Ben
şöyle kadar kablolu birAccountController
var:
public class AccountController : SecureController
{
public IUnitOfWorkFactory UnitOfWorkFactory { get; set; }
...
... bildiğim kadarıyla anlamaya gibi, bu should sadece "iş" (nasıl diye sorma rağmen). Ama kullanmaya çalıştığımda mülküm her zaman boş.
Görünüşe göre, aptalca ve basit bir şeyi özlüyorum, ama ne olduğu hakkında hiçbir fikrim yok.
Ben de hiçbir başarı ile
var propInjector = iocContainer.Register(
Component.For<IUnitOfWorkFactory>()
.ImplementedBy<NHUnitOfWorkFactory>()
.LifestyleSingleton()
);
çalıştılar.
Neyi yanlış yapıyorum?
SONUÇ
Burada çeşitli adımlar eksikti. tutorial'a göre bir yükleyici ve bir önyükleyici inşa ettim, ancak denetleyici fabrikalarını kurmadan önce hizmetlerimi yanlış noktaya kaydettim.
Denetleyicinizi kaydettiniz mi? –
... Bu sadece kurucu bağımlılığı enjeksiyonu için gerekli olmaz mıydı? Belki bunun nasıl çalışması gerektiğini yanlış anladım. –
Hayır, kapsayıcı, nesne grafiğinin kökünü oluşturmalıdır. Bu durumda kontrolör. Bu, Mülk veya Yapıcı enjeksiyonu için geçerlidir (çünkü aynı şekilde çalışırlar). –