Code d'exception StructureMap: 202 Aucune instance par défaut définie
-
05-07-2019 - |
Question
Lorsque j'inscris ce qui suit dans SM, puis que je tente de créer une instance, je reçois l'exception - "Code d'exception StructureMap: 202 Aucune instance par défaut définie pour PluginFamily ..."
Scan(x =>
{
x.Assembly("MVCDemo");
x.Assembly("MVCDemo.Infrastructure");
x.Assembly("MVCDemo.Services");
x.AddAllTypesOf(typeof (IRepository<>));
});
ForRequestedType<IRepository<Employee>>().TheDefault.Is.ConstructedBy(() => new EmployeeRepository());
var tmp4 = ObjectFactory.GetInstance<IRepository<Employee>>();
L'exception se produit lorsque j'essaie d'obtenir une instance d'IRepository.
Est-ce que quelqu'un sait ce qu'il me manque?
A bientôt
Ollie
La solution
La réponse est que je ne devrais pas utiliser ObjectFactory pour créer une instance, je devrais utiliser le conteneur:
var container = new Container(new MvcDemoRegistry());
var cultureProvider = container.GetInstance<IProvideCultureInfo>();
Ta
Ollie
Autres conseils
Vous n'êtes pas censé utiliser des conteneurs pour obtenir des instances lorsque vous utilisez une IoC et une DI. Vous devez utiliser une injection de constructeur et demander à l'IoC de gérer l'injection pour vous.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow