2009-07-29 4 views
2

Quand j'enregistrer les informations suivantes dans SM et ensuite tenter de créer une instance que je reçois l'exception - 'StructureMap Code d'exception: 202 Aucune instance par défaut défini pour PluginFamily ...'StructureMap Code d'exception: 202 Aucune instance par défaut défini

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 de IRepository.

Est-ce que quelqu'un sait ce que je manque?

Vive

Ollie

Répondre

5

La réponse est que je ne devrais pas utiliser ObjectFactory de créer une instance, je devrais utiliser le conteneur:

var container = new Container(new MvcDemoRegistry()); 
var cultureProvider = container.GetInstance<IProvideCultureInfo>(); 

Ta

Ollie

2

Vous n'êtes pas censé utiliser des conteneurs pour obtenir des instances lorsque vous utilisez un IoC et DI. Vous devriez utiliser injection de constructeur et avoir l'IoC gérer l'injection pour vous.

Questions connexes