2011-10-21 10 views
6

Se mi registro:sono più associazioni Ninject garantiti per mantenere il loro ordine vincolante

Bind<IWeapon>().To<Sword>(); 
Bind<IWeapon>().To<Knife>(); 
Bind<IWeapon>().To<ChuckNorris>(); 

e quindi recuperare tramite:

IEnumerable<IWeapon> weapons = ServiceLocator.Current.GetAllInstances<IWeapon>(); 

Perchè sono garantiti gli attacchi saranno sempre restituiti in questo ordine?

Ho provato, e sembra che lo faccia, ma questo potrebbe essere puramente incidentale.

risposta

7

Risposta breve: No, non lo sei!

Risposta un po 'più lunga: l'attuale implementazione mantiene l'ordine. Ma non è garantito che questo sarà ancora il caso nelle future versioni di Ninject. Inoltre, non dovresti avere queste regole aziendali nella configurazione del contenitore IoC.

Problemi correlati