2014-05-15 1 views
6

Resharper에는 Architecture View 창이 있으며 전이 참조이라는 용어가 있지만 실제로 의미하는 바에 약간 혼란 스럽습니다. 그 (것)들에서 This blog post는 불완전한 방법으로 그것을 포함한다.전이 참조 란 무엇입니까?

이 옵션은 솔루션 다이어그램을 단순화하기위한 것일뿐입니다. 맞습니까?

만약 그렇다면 의 과도 참조의 의미는 무엇입니까?

답변

17

ReSharper가 전이 참조를 말할 때, 다른 중개 어셈블리를 참조하여 암시 적으로 만들어진 어셈블리에 대한 참조를 의미합니다. 예를 들어, "Core.dll"어셈블리가있는 프로젝트가 있다고 가정 해보십시오. Core.dll을 참조하는 "Features.dll"프로젝트를 만듭니다. 이것은 직접적인 참조입니다.

이제 테스트 프로젝트 인 Features.Tests.dll을 추가한다고 해봅시다. 이 어셈블리는 Features.dll의 코드를 테스트하므로, Features.dll을 직접 참조합니다. 그런 다음 참조는 다음과 같습니다.

Features.Tests.dll -(References)-> Features.dll -(References)-> Core.dll 

각 dll은 사용하는 dll을 직접 참조합니다. 그러나 Features.Tests.dll에는 Core.dll에 "이행 참조"가 있다고 말할 수 있습니다. 예 :

Features.Tests.dll -(References)-> Core.dll 

결국 Core.dll이 없으면 실행할 수 없습니다.

ReSharper의 아키텍처 뷰를 사용하는 경우 전이 참조는 기본적으로 숨겨져 있습니다. 첫째, 다이어그램을 단순화하기위한 것이지, 전이 참조가 암시되어 있기 때문입니다 - 다이어그램에 Features.Tests.dll이 Features.dll 및 Feature를 참조하고 있음을 보여주는 경우입니다. dll이 Core.dll을 참조하면 Features.Tests.dll 및 Core.dll에 Core.dll이 필요하며 따라서 일시적으로 Core.dll을 참조하는 것이 시각적으로 분명합니다. "전 이적 참조 표시"버튼을 활성화하여 전 이적 참조를보다 쉽게 ​​볼 수 있습니다.

전이 참조가 작동하는 방식을 기억하는 한 가지 방법은 수학을 생각하는 것입니다. A> B이고 B> C이면 A> C입니다. "보다 큼"은 전이 관계입니다.

+1

위대한 답변 감사합니다. – Aybe

관련 문제