문제

    container.Register(
        AllTypes.Pick().FromAssembly(typeof (UserRepository).Assembly)
            .WithService.FirstInterface());

현재 인터페이스가 동일한 어셈블리에 있으면 위의 코드가 잘 작동하지만 iuserrepository가 다른 어셈블리에서 나오면 폭발합니다.

두 개의 다른 어셈블리에서 자동 등록이 가능합니까? 내가 여기서 뭔가를 놓치고 있습니까?

도움이 되었습니까?

해결책

예, 인터페이스가 다른 어셈블리에서 정의되는 경우 자동 등록을 정의 할 수 있습니다. 우리는 약간 다른 구문을 사용하지만 다음과 같습니다.

container.Register(AllTypes
    .FromAssemblyContaining<ConfigurationService>()
    .Where(t => t.Name.EndsWith("Service", StringComparison.Ordinal))
    .WithService
    .FirstInterface()
    .Configure(reg => reg.LifeStyle.PerWebRequest));

다른 API 사용이 차이를 만들지는 말할 수는 없지만 그렇지 않다고 가정합니다. 오히려, 당신이 경험 한 오류의 원인은 인터페이스를 포함하는 어셈블리를 사용할 수 없다는 것입니다.

Fusion이 해당 응용 프로그램에서 유형을로드 할 수 있는지 확인하십시오.

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