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

È stato utile?

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
scroll top