2011-05-14 4 views
7

내가 ConfigurationElementCollection<T>시스템을 사용 중입니다. * 자신의 수업에서 네임 스페이스가 나쁜 습관으로 간주됩니까?

라는 클래스 그것은 그것은 우리의 솔루션에 저장된 System.Configuration.ConfigurationElementCollection

의 일반적인 구현이다가, Project.Utility.dll하지만 난 System.Configuration 네임 스페이스의 일부인로 정의한

namespace System.Configuration 
{ 
    [ConfigurationCollection(typeof(ConfigurationElement))] 
    public class ConfigurationElementCollection<T> : 
     ConfigurationElementCollection where T : ConfigurationElement, new() 
    { 
     ... 
    } 
} 

시스템에 클래스를 추가하고 있습니다. * 시스템의 일부가 아닌데 * 이름 공간이 나쁜 습관으로 간주됩니다. * 기본 클래스 라이브러리?

같은면에서 유사한 기능을 가진 비슷한 클래스를 유지하므로 이해가가는 것처럼 보입니다. 그러나 참조를 위해 어디로 가야할지 모르기 때문에 그것이 실제로 비 (非) BCL의 일부 였음을 알지 못하는 사람에게는 혼란을 야기 할 수 있습니다.

+1

대답은 '예'입니다. – mellamokb

+0

확인. 그것은 나를 위해 충분한 짚 - 설문 조사입니다. 고마워. –

답변

7

클래스는 비슷하지만 BCL에는 속하지 않습니다. 나는 이것 때문에 System *에 넣지 않을 것이다. 특히 혼란 스러울 때 사용하면 혼란 스러울 것입니다. * System. *을 참조한 다음 클래스를 사용할 때 메시지를 찾을 수없는 불쾌한 점을 발견했습니다. :-)

3

System을 회사/프로젝트 이름으로 바꾸거나 네임 스페이스 앞에 회사/프로젝트 이름을 붙입니다.

그런 식으로하면 BCL의 일부가 아니지만 정확히 어떻게 관련되어 있는지 분명히 알 수 있습니다.

또한 Microsoft는 이러한 클래스/메서드를 으로 정확하게 구현하고 있습니다 (정확히). 충돌이 발생하지 않습니다.

관련 문제