Voici ce que j'ai maintenantUnity Application Block, Comment passer un paramètre à Injection Factory?
Container.RegisterType<IUserManager, UserManagerMock>();
Container.RegisterType<IUser, UserMock>(
new InjectionFactory(
(c) => c.Resolve<IUserManager>().GetUser("John")));
et l'obtenir
Container.Resolve<IProfile>();
Je veux passer un nom comme paramètre usine pour que je serai en mesure de résoudre l'objet utilisateur avec le nom; Quelque chose comme ceci:
Container.Resolve<IProfile>("Jonh");
Comment puis-je modifier l'enregistrement de type pour ce cas?
Personnellement, je ne tenterais pas de récupérer un IUser/IProfile via l'emplacement du service. Il est correct de simplement récupérer l'IUserManager via l'emplacement du service, puis d'appeler GetUser ("John") dans votre code. –
Je suis d'accord avec John. Si possible, essayez d'utiliser l'injection de dépendance au lieu de l'emplacement du service. Cela vous permet de garder votre code exempt d'appels vers le conteneur et d'avoir un seul (ou tout au plus quelques) emplacement (s) dans votre application qui appelle le conteneur. – Steven