2012-06-25 1 views
2

동일한 컴파일 된 어셈블리 내에서 네임 스페이스 내에 형식을 수집하는 경향이 있습니다. 찾기 쉽고 참조를 쉽게 관리 할 수 ​​있습니다.동일한 네임 스페이스를 여러 어셈블리로 분할하는 데는 어떤 좋은 이유가 있습니까?

그러나 동일한 네임 스페이스가 여러 프로젝트 및 어셈블리로 분할되는 예를 보았습니다. 즉, 완전한 네임 스페이스에 액세스하려면 여러 dll을 참조해야합니다.

누구든지 코드를 이런 식으로 배열해야하는 이유에 대해 나에게 좋은 이유를 줄 수 있습니까? 내가 다른 어셈블리를 필요로하는 일부 기능이 라이브러리를 쓰고 있어요 때 일반적으로 찾을 수

감사

+0

전 본 적이 없어요. 그것은 끔찍한 생각처럼 들리네! 네임 스페이스는 서로가 존재한다는 것을 어떻게 알 수 있습니까? 네임 스페이스를 독점적으로 사용할 수 있습니까? – davenewza

+1

이것은 종종 발생합니다. 예를 들어 System.Web은 여러 어셈블리에 있습니다. 하나의 어셈블리가 참조되지 않으면 해당 어셈블리의 클래스에 액세스 할 수 없습니다. –

+1

http://stackoverflow.com/questions/2231368/separate-projects-or-multiple-class-files-namespace-best-practice-in-c-sharp 발견 된 내용은 장단점을 제공합니다. – JohnP

답변

1

자신이 일.

예를 들어 .NET 데이터 형식을 SQL 데이터 형식으로 변환하는 일부 변환기를 작성했습니다. 이 중 대부분은 표준 유틸리티 라이브러리에 보관되어 있습니다. 그러나 System.Drawing.PointF의 컨버터는 분명히 System.Drawing을 필요로합니다. 내 유틸리티 네임 스페이스를 참조하는 모든 프로젝트가 System.Drawing을 참조하도록 강요하는 대신, 내 네임 스페이스 부분을 동일한 네임 스페이스 아래의 별도 어셈블리로 가져 왔습니다. 이제 PointF을 변환해야하는 경우 추가 어셈블리를 참조하고 다른 모든 어셈블리와 동일한 네임 스페이스에서 변환기를 찾을 수 있습니다.

나는 실제로이 질문을 Programmers.SE에 요청했습니다.

+0

Dan - 배포 가능한 유닛에 대한 다른 질문에 대한 대답이 나에게 더 적합하지만 여전히 그럴 이유가 없습니다. 내가 '그렇습니다, 그것은 절대적으로 올바른 길'이라고 생각하게 만듭니다. 그것은 선호의 문제로 보인다 ... –

+1

@jimmy_terra 당신은 살인자의 이유를 묻지 않았다. 그것은 정말로 선호의 문제입니다. – dlras2

관련 문제