共用方式為


HOW TO:建立未簽署的 Friend 組件

更新:2007 年 11 月

這個範例會顯示如何將 Friend 組件 (Assembly) 與未簽署的組件搭配使用。

若要在 Visual Studio 中建立組件和 Friend 組件

  1. 建立名為 FriendAssembliesB 的 Windows Form 應用程式新專案。

  2. 在 [檔案] 功能表上,指向 [加入],然後按一下 [新增專案]。

  3. 按一下 [加入新的專案] 對話方塊中的 [類別庫],並將專案命名為 FriendAssembliesA。

  4. 以下列程式碼取代 FriendAssembliesA 專案中 Class1.vb 的內容。此程式碼會使用 InternalsVisibleToAttribute 屬性 (Attribute),將 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
    
  5. 以滑鼠右鍵按一下 [方案總管] 中的 FriendAssembliesB 專案,然後按一下 [加入參考]。

  6. 在 [加入參考] 對話方塊中按一下 [專案] 索引標籤。按一下 [FriendAssembliesA],然後按一下 [確定]。

  7. 以滑鼠右鍵按一下 FriendAssembliesB 專案中的 Form1.vb,然後按一下 [檢視程式碼]。

  8. 將下列程式碼加入至 Form1 類別 (Class)。

    因為 FriendAssembliesA 會將 FriendAssembliesB 指定為 Friend 組件,所以 FriendAssembliesB 中的程式碼可以存取 FriendAssembliesA 中的 Friend 型別和成員。

    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
    
  9. 按 F5 編譯和執行專案。

    程式會顯示包含 "Friend Assemblies Sample Class" 和 "Friend Assemblies Sample Method" 字串的訊息方塊。

安全性

InternalsVisibleToAttribute 屬性和 StrongNameIdentityPermission 類別之間有相似處。主要差異是 StrongNameIdentityPermission 可以要求安全性權限來執行特定程式碼區段,而 InternalsVisibleToAttribute 屬性則會控制 Friend 型別和成員的可視性。

請參閱

工作

HOW TO:建立簽署的 Friend 組件

概念

Friend 組件 (Visual Basic)

參考

InternalsVisibleToAttribute