Ho codice nel mio global.axax:Castello di Windsor non riesce a trovare gli installatori nelle assemblee
protected void Application_Start()
{
WindsorContainer = new WindsorContainer();
WindsorContainer.Install(FromAssembly.InDirectory(new AssemblyFilter(AppDomain.CurrentDomain.RelativeSearchPath)));
ControllerBuilder.Current.SetControllerFactory(new WindsorControllerFactory(WindsorContainer.Kernel));
//...
}
Quando il debug global.asax, codice FromAssembly.InDirectory(newAssemblyFilter(AppDomain.CurrentDomain.RelativeSearchPath))
trova tutto il mio progetto di DLL (ci sono 7 dll). 3 di essi contiene attuazione IWindsorInstaller
interfaccia, ad esempio:
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);
}
}
Ma quando I definisce i punti di interruzione, è solo 1 installatore chiamato, 2 altro era saltato. È divertente, ma ho un altro che funziona con il progetto da quello che ho copiato il codice.
Oh mio dio! È uno sbaglio così stupido :) Grazie mille! –
Succede a tutti noi, sempre :) – Marijn