Verschiedene Implementationen des selben Interfaces mit Unity "injecten"

Published on Wednesday, 30 September 2009

PersonRepository und VorgangRepository sind zwei Implementationen eines Interfaces: IRepoistory

Um nun meinen DBAdapter, der (natürlich IDBAdapter implementiert und) beide IRepositories als parameter (natürlich in der richtigen Reihenfolge...) benötigt (Ob das eine tolle Idee war sei mal dahin gestellt.) instanziieren zu können, habe ich folgendes gemacht:

  • Configure() - Ich will die Member der Injection steuern...
  • ConfigureInjectionFor() - auf den DBAdapter instanzen
  • new InjectionConstructor() - der Konstruktor soll gesteuert werden
  • new ResolvedParameter("Person") - IRepository soll mit dem Key "Person" aufgelöst werden.

Etwas störend finde ich die Notwendigkeit dies über zwei Strings zu steuern, also wenn jemand eine bessere Idee hat.. Immer her damit.

Edit: Etwas besser ist natürlich das IRepository noch zwei mal abzuleiten (wenn dies möglich ist...) einmal als
IPersonenRepository und einmal als IVorgangsRepository.