StructureMap 예외 코드 : 202 기본 인스턴스가 정의되지 않았습니다
-
05-07-2019 - |
문제
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가 주입을 처리해야합니다.
제휴하지 않습니다 StackOverflow