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:
IUnityContainer container = UnityContainerProvider.UnityContainer;
container.RegisterType<IDbAdapter, DbAdapter>();
container.RegisterType<IRepository, PersonRepository>("Person");
container.RegisterType<IRepository, VorgangRepository>("Vorgang");
container.Configure<InjectedMembers>().ConfigureInjectionFor<DbAdapter>(
new InjectionConstructor(
new ResolvedParameter<IRepository>("Person"),
new ResolvedParameter<IRepository>("Vorgang")
));
- 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.
Edit: Etwas besser ist natürlich das IRepository noch zwei mal abzuleiten (wenn dies möglich ist...) einmal als
IPersonenRepository und einmal als IVorgangsRepository.
Keine Kommentare:
Kommentar veröffentlichen