Ciao Stefano,
You wrote on 23/01/2013 :
>
>> factory/builder custom.
>
> Dentro Radical trovo un esempio ? Se mi dai una dritta io studio..
si e no, nel senso che Radical.Presentation.Sammples è basato su
Windsor, ma non è visibile da nessuna parte se non nel bootstrapper.
Una volta che il container è configurato, e che hai usato il container
per risolvere il 1° componente da cui partire, in'unapplicazione
desktop ad esempio la "main window", tutto il resto deve fluire
semplicemente dichiarando le dipendenze, quindi (pensando a Radical) se
la main window ha bisogno del broker farà così:
class MainViewModel
{
public MainViewModel( IMessageBorker broker ){ }
}
dichiarando la dipendenza sul costruttore e non usando il locator:
class MainViewModel
{
public MainViewModel()
{
var broker = ServiceLocator.GetService<IMessageBroker>();
}
}
che complica in primis la fase di testing, nel caso in cui hai bisogno
invece di di controllare _quando_ un componente viene risolto, ci sono
tanti buoni motivi per farlo ma devono essere casi "rari", ti devi
mettere in mezzo tu con una factory:
class BrokerFactory
{
public BrokerFactory( IWindsorContainer container ){}
public IMessageBroker GetBroker()
{
return this.container.Resolve<IMessageBroker>();
}
}
> Grazie Mauro