2012-12-03 3 views
3

많은 어셈블리를 참조 할 때 부정적인 영향은 무엇입니까? 나는 ReSharper가 "Unused References"를 제거 할 수있는 기능을 가지고 있다는 것을 알아 챘습니다. (때로는 참조에 의존하는 어셈블리가 Ninject를 통해 런타임에로드 될 때와 같이 잘못되었지만) 프로젝트를 좀 더 깨끗하게 보이게하는 것 외에 어떤 이점이 있습니까? ? 결과 어셈블리는 런타임에 메모리를 덜 사용합니까? 아마도 컴파일러는 참조가 사용되지 않는다는 것을 알기에 충분히 똑똑할까요?많은 어셈블리를 참조 할 때 부정적인 영향이 있습니까?

+2

처음에는 필요없는 참조를 왜 추가하고 있습니까? – Servy

+0

Silverlight에 배포하는 경우 불필요한 어셈블리가 클라이언트로 전송됩니다. 일반적으로 필자는 필요한 프로젝트 참조를 최소화하려고 노력합니다. 존재하지 않는 순환 참조를 피하는 데 도움이되며 종속성을 최소화하는 데 도움이되며 각 프로젝트가 의존하는 것에 대해 실제로 빠르고 정확하게 보입니다. –

+0

@Servy VS에서 흔히 제거 할 수있는 일련의 일반적인 시스템 어셈블리 (System.Xml, System.Windows, System.Core 등)를 추가합니다. 그러나 일반적으로 동의합니다. 필요할 때까지 어셈블리 참조를 수동으로 추가 할 필요가 없습니다. 그런 다음 종속성을 리팩토링 할 때 경계 참조를 제거해야합니다. –

답변

6

컴파일러는 사용하지 않는 참조를 무시할만큼 똑똑합니다.

그러나 Visual Studio Intellisense에서 참조되는 많은 어셈블리에서 성능에 영향을 미칩니다. C# Team's FAQ Blog on MSDN

에서

는 .NET 플랫폼 유형의 바이너리 재사용을 장려 감안할 때, .NET 참조 추가 대화 상자는 Visual Studio를 사용하여 외부 어셈블리에 대한 참조를 설정하는 평범한입니다. 많은 프로그래머 (특히 C (++) ilk의 프로그래머)는 불필요한 외부 참조를 추가하면 코드가 부 풀릴 수 있습니다. 진실에서 더 멀어 질 수는 없습니다. 어셈블리 참조를 추가하거나 'using'키워드를 사용하면 csc.exe는 실제로 코드에서 사용하지 않은 어셈블리를 무시합니다.

+0

참고 자료를 제공해 주시겠습니까? (첫 번째 부분 - 인텔리 센스 효과에 대해 말씀 드리겠습니다) –

+1

@ Sam.Rueby See - http://blogs.msdn.com/b/csharpfaq/archive/2004/10/20/245411.aspx – Kami

0

모든 어셈블리 참조는 시스템 내에서 커플 링을 증가시키는 종속성입니다. 너무 많은 참고 문헌을 가지고있는 나의 경험에서 가장 큰 영향은 시스템 설계가 잘 시행되지 않았 음을 나타내며 시스템이 big ball of mud이되는 것을 나타낼 수 있음을 나타냅니다.

관련 문제