Код исключения StructureMap: 202 Экземпляр по умолчанию не определен - PullRequest
2 голосов
/ 29 июля 2009

Когда я регистрирую следующее в SM, а затем пытаюсь создать экземпляр, я получаю исключение - 'Код исключения StructureMap: 202 Нет экземпляра по умолчанию, определенного для 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>>();

Исключение возникает, когда я пытаюсь получить экземпляр IRepository.

Кто-нибудь знает, что мне не хватает?

Приветствия

Олли

Ответы [ 2 ]

5 голосов
/ 30 июля 2009

Ответ: я не должен использовать ObjectFactory для создания экземпляра, я должен использовать контейнер:

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

Ta

Олли

2 голосов
/ 15 июня 2011

Вы не должны использовать контейнеры для получения экземпляров при использовании IoC и DI. Вы должны использовать инъекцию в конструктор, и IoC должен выполнить инъекцию за вас.

...