Der UserService
Konstruktor hat zwei Parameter, ein IUnitOfWork
und ein IUserRepository
:Einheit: Implizite ResolvedParameter für unbenannte Registrierungen
public UserService(IUnitOfWork unitofWork, IUserRepository userRepository)
{ ... }
ich named registrations verwende zwischen mehreren Instanzen von IUnitOfWork
zu unterscheiden, so dass, wenn die UserService
mit der Unity Registrierung Behälter, ich brauche die Parameter explizit angeben, eine InjectionConstructor
mit:
container.RegisterType<IUserService, UserService>(
new InjectionConstructor(
new ResolvedParameter<IUnitOfWork>("someContext"),
new ResolvedParameter<IUserRepository>()
)
);
Kann new ResolvedParameter<IUserRepository>()
weggelassen werden? Ich möchte, dass Unity diesen Parameter implizit herleitet, da eine benannte Registrierung nicht erforderlich ist. Der Code würde wie folgt aussehen:
container.RegisterType<IUserService, UserService>(
new InjectionConstructor(
new ResolvedParameter<IUnitOfWork>("someContext")
)
);
Nachdem dies geschehen würde, ist jedenfalls, wenn ich brauche nicht die InjectionConstructor
zu verwenden.
Das funktioniert super. Könnte es irgendwelche Nachteile geben, wenn man eine solche Reflexion (z. B. Leistung) verwendet? Vielen dank für Deine Hilfe. – davenewza
Dies verwendet Reflexion in der gleichen Weise wie der Standard InjectionConstructor, so sollte es etwa die gleiche Leistung haben. Froh, dass ich helfen konnte! =) – TylerOhlsen