Gewusst wie: Erstellen von unsignierten Friend-Assemblys

Aktualisiert: November 2007

In diesem Beispiel wird veranschaulicht, wie Friend-Assemblys mit unsignierten Assemblys verwendet werden.

So erstellen Sie in Visual Studio eine Assembly und eine Friend-Assembly

  1. Erstellen Sie für eine Windows Forms-Anwendung mit dem Namen FriendAssembliesB ein neues Projekt.

  2. Zeigen Sie im Menü Datei auf Hinzufügen, und klicken Sie auf Neues Projekt.

  3. Klicken Sie im Dialogfeld Neues Projekt hinzufügen auf Klassenbibliothek, und geben Sie dem Projekt den Namen FriendAssembliesA.

  4. Ersetzen Sie den Inhalt von Class1.vb im FriendAssembliesA-Projekt durch den folgenden Code. In diesem Code wird das InternalsVisibleToAttribute-Attribut verwendet, um FriendAssembliesB als Friend-Assembly zu deklarieren.

    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. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das FriendAssembliesB-Projekt, und klicken Sie dann auf Verweis hinzufügen.

  6. Klicken Sie im Dialogfeld Verweis hinzufügen auf die Registerkarte Projekte. Klicken Sie auf FriendAssembliesA, und klicken Sie dann auf OK.

  7. Klicken Sie im FriendAssembliesB-Projekt mit der rechten Maustaste auf Form1.vb, und klicken Sie dann auf Code anzeigen.

  8. Fügen Sie der Klasse Form1 den folgenden Code hinzu.

    Da FriendAssembliesB von FriendAssembliesA als Friend-Assembly angegeben wird, kann mit dem Code in FriendAssembliesB auf die als Friend definierten Typen und Member von FriendAssembliesA zugegriffen werden.

    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. Drücken Sie F5, um das Projekt zu kompilieren und auszuführen.

    Vom Programm werden Meldungsfenster angezeigt, die die Zeichenfolgen "Friend Assemblies Sample Class" und "Friend Assemblies Sample Method" enthalten.

Sicherheit

Das InternalsVisibleToAttribute-Attribut ist mit der StrongNameIdentityPermission-Klasse vergleichbar. Der Hauptunterschied liegt darin, dass von StrongNameIdentityPermission Sicherheitsberechtigungen für die Ausführung einzelner Codeabschnitte angefordert werden können, während das InternalsVisibleToAttribute-Attribut die Sichtbarkeit von als Friend definierten Typen und Membern steuert.

Siehe auch

Aufgaben

Gewusst wie: Erstellen von signierten Friend-Assemblys

Konzepte

Friend-Assemblys (Visual Basic)

Referenz

InternalsVisibleToAttribute