AUTOFAC : 멀티 테넌트 종속성이있는 단일 인스턴스 개체
-
12-11-2019 - |
문제
두 클래스 A와 B는 (생성자 주입 된 생성자)에 의존합니다. B는베이스 컨테이너의 LINNINSTANCE로 등록되어 있으며 빌드됩니다. A는 Tenantid에서 다양한 링 티닉스로 멀티 테넌트 컨테이너에 등록되어 있습니다.
질문 1 :
Resolve<B>()
.
B는 또한 BYANTID에 따라 다르 죠?
질문 2 : 동일하지만 A는 멀티 테넌트 컨테이너 내에서 수명 범위로 등록되고 B는 에 의존합니다.
Func<Owned<A>>.
.
업데이트 : 폐쇄!
이것은 "내가 정말로 원한다 뭐라 구요였습니다 ..."의 초보자가 의미론에 대한 이해가 부족하기 때문에; 특히, 존재하지 않는 세입자 수명 범위 내에서 모든 해상도에서 에 의해 구축 된 인스턴스가 필요했습니다. 몇 가지 지침을 얻었으며 문제 # 318에 패치를 제출 한 것으로, 그것은 752의 트렁크로 끌려 갔고, 우리는가는 것이 좋다! 이제 위의 질문은 다음을 읽을 것입니다 :
두 클래스 A와 B는 (생성자 주입 된 생성자)에 의존합니다. B는베이스 컨테이너에 instancePertenant 으로 등록되어 있으며, 빌드됩니다. A는 instancePertenant 으로 멀티 텐텐 티 컨테이너에 등록되어 있습니다.
와 두 가지 질문에 대한 답변이 "예"입니다.
Travis와 Nick에 대한 도움을 받고이 위대한 도구를 유지하십시오.
해결책
예제를 올바르게 이해하면 대답은 두 가지 카운트에서 "아니오"입니다.
autofac은 짧은 인스턴스에 대한 참조를 얻는 장기간의 인스턴스에 대해 보호합니다.
여기와 거기에서 디자인을 다시 생각하는 것을 의미 할 수도 있지만, 내 경험에서 이것은 더 예측 가능한 행동을 만듭니다.
이 도움이되기를 바랍니다!
nick
(BTW, 특정 시나리오에 입력이 필요하면 설명 된 구체적인 구성 요소로 다른 질문을 만드는 것이 좋습니다.)