2012-02-04 26 views
9

kurulum yapanlar bulamıyor: Ben Global.asax hata ayıklamaWindsor Castle benim global.axax içinde koduna sahip meclisleri

protected void Application_Start() 
{ 
    WindsorContainer = new WindsorContainer(); 
    WindsorContainer.Install(FromAssembly.InDirectory(new AssemblyFilter(AppDomain.CurrentDomain.RelativeSearchPath))); 
    ControllerBuilder.Current.SetControllerFactory(new WindsorControllerFactory(WindsorContainer.Kernel)); 
//... 
} 

, kod FromAssembly.InDirectory(newAssemblyFilter(AppDomain.CurrentDomain.RelativeSearchPath)) bulduğu tüm projemin dll (7 dll en vardır). Bunlardan 3 örneğin IWindsorInstaller arayüzün uygulanmasını içerir:

class WindsorInstaller : IWindsorInstaller 
{ 
    public void Install(IWindsorContainer container, IConfigurationStore store) 
    { 
     var services = AllTypes.FromThisAssembly().Where(type => type.Name.EndsWith("Service")); 
     container.Register(services 
      .WithService.DefaultInterfaces() 
      .Configure(c => c.LifestyleTransient())); 
     container.Register(Component.For<ISession>().ImplementedBy<AspnetSession>(). 
      LifeStyle.Transient); 
     container.Register(Component.For<ICache>().ImplementedBy<AspnetCache>(). 
      LifeStyle.Transient); 
    } 
} 

Ama kesme noktaları belirler, bunun denilen sadece 1 yükleyici, diğer 2 atlandı olduğunu. Çok komik, ama kopyaladığımdan başka bir çalışma projem var.

cevap

14

Yükleyici sınıfınız herkese açık olmalıdır. Mevcut yükleyici sınıfınız hiçbir erişim değiştiriciye sahip değil, bu nedenle varsayılan olarak internal - ve Windsor için görünmez. Kale dokümanları şunları belirtiyor: http://stw.castleproject.org/Windsor.Installers.ashx.

+0

Aman tanrım! Çok aptal bir hata :) Büyük teşekkürler! –

+4

Hepimiz için hep kutluyoruz :) – Marijn

İlgili konular