2010-04-09 1 views
0

내 Visual Studio 프로젝트를 컴파일 할 때 내 모든 공용 변수 변수/메서드/클래스를 내부에 만들고 싶습니다. 소스 코드는 변경되지 않지만 컴파일 된 라이브러리가 완료되면 내부 액세스 만 있어야합니다. 이것이 가능한가?컴파일 할 때 Visual Studio에서 모든 공용 변수/메서드/클래스를 내부적으로 만들 수 있습니까?

"InternalsVisibleTo ("ClassLibrary ")"모든 프로젝트의 어셈블리 정보 파일을 설정했지만, "공용"을 "내부"로 모두 바꾸기를 원하지 않습니다. 이 주변에 누군가가 있는지 알고 있습니까? 따라서 컴파일 할 때 프로젝트를 빌드하고 릴리스 프로젝트는 내부 액세스 만 허용합니다.

내가 당신이 InternalsVisibleTo 속성의 사용을 오해 생각

+4

타입과 멤버를 '내부'로 선언하고 싶지 않은 특별한 이유가 있습니까? –

+0

나는 이해하지 못한다. 모든 멤버가 '내부'인 경우 외부 코드가 라이브러리를 어떻게 사용합니까? –

+0

어셈블리 정보 파일에서 InternalsVisibleTo()를 사용합니다. – Joe

답변

1

을 주셔서 감사하고 좋은 하루 되세요. 의 코드에서 다른 어셈블리가 internal으로 선언 된 형식과 멤버에 액세스 할 수있게합니다.

internal class SomeClass 인 AssemblyA가 있다고합시다. 그런 다음 AssemblyB를가집니다. AssemblyA의 internal이므로 AssemblyB의 코드는 SomeClass을 사용할 수 없습니다. 그런 다음 AssemblyA에서 InternalsVisibleTo을 사용하여 AssemblyB에 대한 액세스 권한을 부여하여 internal 유형 및 AssemblyA 멤버를 사용할 수 있습니다.

코드를 AssemblyA에 내부적으로 작성하려는 경우 처음부터 적절하게 유형을 선언해야합니다. 거기에 대한 지름길이 없습니다.

+0

의견을 보내 주셔서 감사합니다. – Joe