문제

SM에 다음을 등록한 다음 인스턴스를 만들려고 할 때 예외를 가져옵니다 - 'StructureMap Exception Code : 202 No Default 인스턴스가 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 인스턴스를 얻을 때 발생합니다.

내가 무엇을 놓치고 있는지 아는 사람이 있습니까?

건배

올리

도움이 되었습니까?

해결책

대답은 인스턴스를 만들기 위해 ObjectFactory를 사용해서는 안된다는 것입니다. 컨테이너를 사용해야합니다.

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

고마워

올리

다른 팁

IOC 및 DI를 사용할 때는 컨테이너를 사용하여 인스턴스를 얻지 않아야합니다. 생성자 주입을 사용해야하고 IOC가 주입을 처리해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top