2011-08-16 4 views
0

가, 누군가가 나 구성 요소를 다음과 같은 방법으로 등록 할 때 발생하는 설명 할 수 :Autofac에서 InstancePerLifetimeScope 및 InstancePerMatchingLifetimeScope

builder.RegisterType<SomeComponent>() 
     .InstancePerMatchingLifetimeScope(contextTag) 
     .InstancePerLifetimeScope(); 

Q1을. 이것이 구성 요소를 등록하는 유효한 방법입니까?

2. InstancePerLifetimeScope가 다른 것을 재정의합니까? 'contextTag'범위에서 구성 요소를 해결하려고하면 예외가 발생합니까?

+0

달성하려는 목표는 무엇입니까? 일반적으로 그 중 하나를 사용합니다. autofac wiki에서 그들에 대한 문서를 읽으십시오. – jgauffin

+0

우리는 의존성을 관리하기 위해 다양한 컨텍스트 태그를 가진 자체 컨테이너 구조를 가지고 있습니다. Autofac WCF에 연결하면 기본적으로 Lifetime 범위가 표시됩니다. 모든 종속물은 'contextTag'범위에 있으므로 문제를 해결하지 못합니다. 위의 두 범위에서 구성 요소를 등록하면 모든 경우에 구성 요소를 확인할 수 있습니다. – Zuber

답변

0

A1. 그것은 무효가 아닙니다. 그러나 필요를보고 이해하는 것은 혼란 스럽습니다.

A2. 구성 요소는 두 범위 모두에서 사용할 수 있으며 요청 된 범위에서 해결됩니다.

나는이 시나리오를 피하려고 노력할 것이다. 그러나 완전히 피할 수 없다면, 다른 autofac 모듈을 사용하여 다른 범위에서 구성 요소를 등록하는 것이 더 깔끔합니다.

관련 문제