Si consideri il seguenteOttenere un elenco di tutti gli oggetti registrati di attuazione di una certa interfaccia
builder.Register(c => new A());
builder.Register(c => new B());
builder.Register(c => new C());
B
e C
sono entrambi ISomeInterface
.
Vorrei ora ottenere uno IEnumerable
di tutti gli oggetti registrati che implementano ISomeInterface
.
Come posso realizzare questo in Autofac?
Autofac non lo fa supportare davvero quello che stai chiedendo. Se non puoi modificare le registrazioni, potresti essere protetto. Eventuali domande contro la raccolta di registrazioni non tengono necessariamente conto delle fonti di registrazione dinamica (alcune delle quali sono registrate automaticamente nel contenitore) per supportare cose come "IEnumerable"). Quello che ottieni dalla query potrebbe non essere un elenco completo. –