2012-12-31 4 views
1

내장 된 Funq IoC 컨테이너를 사용하여 내 저장소를 해결하는 ServiceStack API를 설정했습니다. 그러나 API 메서드를 호출하면 다음 예외가 발생합니다.ServiceStack/Funq가 System.Boolean 예외를 해결할 수 없습니다.

System.Boolean 형식의 필요한 종속성을 확인할 수 없습니다.

마지막으로 확인한 System.Boolean은 해결할 필요가 없습니다. 다음과 같이 AppHost Configure에 내 리포지토리를 등록했습니다.

container.RegisterAutoWiredAs<OrganisationRepository, IOrganisationRepository>().ReusedWithin(ReuseScope.Request); 

ServiceStack 또는 Funq를 처음 사용합니다. 내가 뭐 잘못하고 있니? 이 문제를 해결할 방법이 있습니까?

+1

부울 매개 변수를 사용하는 항목을 자동으로 확인할 수 없습니다. 'true' 또는'false'를 전달할 것인지 어떻게 알 수 있습니까? – SLaks

+0

내 생성자 중 어떤 것도 부울 값을 갖지 않습니다. 똑같은 설정은 Autofac을 사용하여 작동합니다. – Carvellis

+0

@SLaks 아 실제로 부울 값을 사용하는 오버로드 된 생성자와 하나의 종속성이있었습니다. Autofac은 실제로 해결할 수있는 생성자 (부울 매개 변수없이)를 찾을만큼 똑똑하기 때문에 항상 동일한 종속성이 Autofac과 함께 작동했습니다. – Carvellis

답변

1

container.RegisterAutoWiredAs<T,IT>()을 사용하는 경우 Funq는 가장 큰 생성자을 생성자로 사용하고 리포지토리의 각 공용 속성 종속성을 해결하고 주입합니다. 당신은 또한의 골격을 포함해야한다,이 같은 IOC의 문제가있을 때마다 :

container.Register<IOrganisationRepository>(c => 
    new OrganisationRepository(c.Resolve<IFoo>()) { Bar = c.Resolve<IBar>() }); 

참고 :

는 수동으로 등록을 지정해야 다른 특정 생성자, 또는 단지 자동으로 묶어 특정 속성을 사용하려면 너의 수업.

관련 문제