C#에서는 기본적으로 internal 접근 제한자가 붙은 멤버는 같은 어셈블리 내에서만 접근할 수 있습니다. 하지만 특정 어셈블리 간에 internal 멤버를 공유하고 싶을 때 InternalsVisibleTo 특성을 사용할 수 있습니다.
1. InternalsVisibleTo란?
InternalsVisibleTo는 어셈블리의 internal 멤버를 다른 지정된 어셈블리에게 공개하도록 허용하는 특성입니다. 주로 테스트 프로젝트에서 내부 멤버를 접근해야 할 때 많이 사용됩니다.
2. 사용법
원하는 어셈블리의 AssemblyInfo.cs나 프로젝트 내 어디서든 아래와 같이 선언합니다.
[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("FriendAssemblyName")];
여기서 "FriendAssemblyName"은 internal 멤버에 접근할 수 있게 허용할 어셈블리 이름입니다.
3. 참고사항
- Strong-named 어셈블리인 경우, FriendAssembly도 strong-name 정보를 함께 명시해야 합니다.
- 디버깅 및 테스트 목적 이외에는 내부 접근을 지나치게 공개하지 않는 것이 좋습니다.
4. 예제
// AssemblyInfo.cs 에 추가
[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("MyProject.Tests")]
// MyClass.cs
internal class MyClass
{
internal void InternalMethod()
{
// 내부 메서드
}
}
// MyProject.Tests에서 MyClass.InternalMethod 사용 가능'C#' 카테고리의 다른 글
| C# 주석과 문서화 XML 주석 활용 (0) | 2026.04.25 |
|---|---|
| C# 멀티캐스트 델리게이트 동작 원리 (0) | 2026.04.24 |
| C# global using 지시문 활용 (0) | 2026.04.23 |
| C# 커스텀 예외(Custom Exception) 설계 (0) | 2026.04.23 |
| C# 중첩 클래스(Nested Class) 활용 사례 (1) | 2026.04.23 |