J'utilise l'unité de Microsoft pour l'injection de dépendance et je veux faire quelque chose comme ceci:Puis-je transmettre les paramètres du constructeur à la méthode Resolve() de Unity?
IDataContext context = _unityContainer.Resolve<IDataContext>();
var repositoryA = _unityContainer.Resolve<IRepositoryA>(context); //Same instance of context
var repositoryB = _unityContainer.Resolve<IRepositoryB>(context); //Same instance of context
IDataContext context2 = _unityContainer.Resolve<IDataContext>(); //New instance
var repositoryA2 = _unityContainer.Resolve<IRepositoryA>(context2);
RepositoryA
et RepositoryB
ont tous deux un constructeur qui prend un paramètre IDataContext
, et je veux l'unité pour initialiser le référentiel avec le contexte que je le passe. Notez également que IDataContext
n'est pas enregistré avec Unity (je ne veux pas 3 instances de IDataContext
).
Voir aussi http://stackoverflow.com/questions/2813322/unity-2-0-how-to-use -resolve-with-resolveroverride –
le lien http://unity.codeplex.com/SourceControl/changeset/view/33899 n'est pas actif –
"Class 'Microsoft.Practices.Unity.ParameterOverrides' n'a pas de paramètres de type". J'utilise Unity 3.5; ce code est-il valide uniquement pour une ancienne version de Unity? –