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
Erstellen Sie für eine Windows Forms-Anwendung mit dem Namen FriendAssembliesB ein neues Projekt.
Zeigen Sie im Menü Datei auf Hinzufügen, und klicken Sie auf Neues Projekt.
Klicken Sie im Dialogfeld Neues Projekt hinzufügen auf Klassenbibliothek, und geben Sie dem Projekt den Namen FriendAssembliesA.
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
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das FriendAssembliesB-Projekt, und klicken Sie dann auf Verweis hinzufügen.
Klicken Sie im Dialogfeld Verweis hinzufügen auf die Registerkarte Projekte. Klicken Sie auf FriendAssembliesA, und klicken Sie dann auf OK.
Klicken Sie im FriendAssembliesB-Projekt mit der rechten Maustaste auf Form1.vb, und klicken Sie dann auf Code anzeigen.
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
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)