클래스 라이브러리에 내부 유형 만 포함 된 네임 스페이스를 숨기고 있습니까?

StackOverflow https://stackoverflow.com/questions/720647

문제

내부 유형 만 포함 된 몇 개의 네임 스페이스가있는 클래스 라이브러리가 있습니다.

그러나 응용 프로그램 프로젝트에서 클래스 라이브러리를 사용할 때 네임 스페이스는 Intellisense에 나타나지만 물론 비어 있습니다. 다른 프로젝트에서 Intellisense를 사용할 때 네임 스페이스를 완전히 숨길 수있는 방법이 있습니까?

신청하려고했습니다 EditorBrowsableAttribute 모든 내부 클래스에도하지만 제가하고 싶은 것은 네임 스페이스에 적용하는 것입니다. 물론 불가능합니다.

아니면 이것에 대해 충분히 관심이 있다면 유일한 옵션은 유형을 공공 유형을 포함하는 네임 스페이스로 옮기는 것만으로도 유일한 옵션입니까?

도움이 되었습니까?

해결책

클래스 라이브러리를 참조하는 방법에 따라 다릅니다.

  • 솔루션 내에 클래스 라이브러리 프로젝트가 포함되어 있고 프로젝트 참조를 사용하는 경우 항상 Intellisense를 통해 빈 네임 스페이스를 볼 수 있습니다.
  • 클래스 라이브러리의 컴파일 된 DLL을 참조하는 경우 내부 멤버 만 포함 된 경우 Intellisense에서 네임 스페이스가 나타나지 않을 것입니다.

이 시도:

namespace ClassLibrary1
{
    namespace Internal
    {
        internal class InternalClass
        {
            public int internalStuff { get; set; }
        }
    }

    namespace Public
    {
        public class PublicClass
        {
            public int publicStuff { get; set; }
        }
    }
}

프로젝트 참조를 통해이를 참조하면 빈 네임 스페이스가 표시됩니다. DLL을 참조하면 그렇지 않을 것입니다.

다른 팁

나는 전에 이것에 반대했고 해결책을 찾지 못했고 프로젝트에서 작동하거나 작동하지 않을 수있는 해결 방법 만 발견했습니다. 네임 스페이스를 정의하는 대신 중첩 된 정적 클래스를 사용할 수 있습니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top