Codice eccezione StructureMap: 202 Nessuna istanza predefinita definita
-
05-07-2019 - |
Domanda
Quando registro quanto segue in SM e quindi provo a creare un'istanza ottengo l'eccezione: 'Codice eccezione StructureMap: 202 Nessuna istanza predefinita definita per 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'eccezione si verifica quando provo a ottenere un'istanza di IRepository.
Qualcuno sa cosa mi sto perdendo?
Saluti
Ollie
Soluzione
La risposta è che non dovrei usare ObjectFactory per creare un'istanza, dovrei usare il contenitore:
var container = new Container(new MvcDemoRegistry());
var cultureProvider = container.GetInstance<IProvideCultureInfo>();
Ta
Ollie
Altri suggerimenti
Non dovresti usare i container per ottenere istanze quando usi un IoC e un DI. Dovresti usare l'iniezione del costruttore e far sì che l'IoC gestisca l'iniezione per te.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow