방법: 서명되지 않은 Friend 어셈블리 만들기
업데이트: 2007년 11월
이 예제에서는 서명되지 않은 어셈블리에 Friend 어셈블리를 사용하는 방법을 보여 줍니다.
Visual Studio에서 어셈블리와 Friend 어셈블리를 만들려면
FriendAssembliesB라는 새 Windows Forms 응용 프로그램의 프로젝트를 만듭니다.
파일 메뉴에서 추가를 가리킨 다음 새 프로젝트를 클릭합니다.
새 프로젝트 추가 대화 상자에서 클래스 라이브러리를 클릭하고 프로젝트의 이름을 FriendAssembliesA로 지정합니다.
FriendAssembliesA 프로젝트의 Class1.vb에 대한 내용을 다음 코드로 대체합니다. 이 코드에서는 InternalsVisibleToAttribute 특성을 사용하여 FriendAssembliesB를 Friend 어셈블리로 선언합니다.
Imports System.Runtime.CompilerServices <Assembly: InternalsVisibleTo("FriendAssembliesB")> ' Friend class. Friend Class FriendAssembliesA Public Sub Test() MsgBox("Friend Assemblies Sample Class") End Sub End Class ' Public class with a Friend method. Public Class FriendAssembliesClassA Friend Sub Test() MsgBox("Friend Assemblies Sample Method") End Sub End Class
솔루션 탐색기에서 FriendAssembliesB 프로젝트를 마우스 오른쪽 단추로 클릭한 다음 참조 추가를 클릭합니다.
참조 추가 대화 상자에서 프로젝트 탭을 클릭합니다. FriendAssembliesA를 클릭한 다음 확인을 클릭합니다.
FriendAssembliesB 프로젝트의 Form1.vb를 마우스 오른쪽 단추로 클릭한 다음 코드 보기를 클릭합니다.
다음 코드를 Form1 클래스에 추가합니다.
FriendAssembliesA에서는 FriendAssembliesB를 Friend 어셈블리로 지정했기 때문에 FriendAssembliesB의 코드는 Friend 형식 및 FriendAssembliesA의 멤버에 액세스할 수 있습니다.
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles MyBase.Load ' Access a Friend class. Dim friendTest1 As New FriendAssembliesA friendTest1.Test() Dim friendTest2 As New FriendAssembliesClassA ' Access a Friend method. friendTest2.Test() End Sub
F5 키를 눌러 프로젝트를 컴파일하고 실행합니다.
프로그램이 실행되면 "Friend Assemblies Sample Class" 및 "Friend Assemblies Sample Method"라는 문자열이 포함된 메시지 상자가 나타납니다.
보안
InternalsVisibleToAttribute 특성과 StrongNameIdentityPermission 클래스에는 유사점이 있습니다. 가장 큰 차이는 StrongNameIdentityPermission은 코드의 특정 섹션을 실행할 보안 권한을 요청할 수 있는 반면 InternalsVisibleToAttribute 특성은 Friend 형식과 멤버의 표시 유형을 제어한다는 점입니다.