2011-01-04 1 views
2

배우기 시작했습니다. MEF와 그 중 하나 중요한 점은 내보내기 속성을 사용하여 항목 (클래스, 속성, 메소드)을 표시 할 수 있다는 것입니다. 따라서 누가이 속성을 사용하고자 하는지를 인스턴스에 가져올 수 있습니다. 그것. 이 매핑은 어떻게 발생하며 언제 발생합니까? 수입이 느슨하게 요구되거나 모든 구성이 시작될 때 발생합니까? 무지한 질문으로 미안하다. 나는 그 흐름을 이해하려고 노력하고있다.MEF에서 런타임시 가져 오기 및 내보내기는 어떻게 작동합니까?

답변

3

"Composition"이라는 단계에서 발생합니다. 먼저 컨테이너를 만들고 가능한 모든 소스 소스를로드 한 다음 Compose 컨테이너를로드합니다. 컴포지션을 수행하면 모든 종속성이 해결되고 모든 종속성을 올바르게 해결할 수없는 경우 예외가 throw됩니다.

일반적으로 구성하는 동안 파트가 인스턴스화되며 파트 클래스의 생성자에서 중단 점을 설정하면 Compose()을 호출하는 동안 중단 점이 나타납니다. 그러나 Lazy<T>을 가져 오기 유형으로 사용하는 경우 (부품을 T 유형으로 내보냈다 고 가정 할 경우)이를 직접적으로 무시할 수 있습니다.

구성이 어떻게 작동하는지 보려면 Compose() 방법 here을 살펴보십시오.

관련 문제