Procedura: creare assembly Friend non firmati
Aggiornamento: novembre 2007
In questo esempio viene indicato come utilizzare gli assembly Friend con assembly non firmati.
Per creare un assembly e un assembly Friend in Visual Studio
Creare un nuovo progetto per un'applicazione Windows Form denominata FriendAssembliesB.
Scegliere Aggiungi dal menu File, quindi fare clic su Nuovo progetto.
Nella finestra di dialogo Aggiungi nuovo progetto fare clic su Libreria di classi e denominare il progetto FriendAssembliesA.
Sostituire il contenuto di Class1.vb nel progetto FriendAssembliesA con il codice seguente. In questo codice viene utilizzato l'attributo InternalsVisibleToAttribute per dichiarare FriendAssembliesB come assembly 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
In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto FriendAssembliesB, quindi scegliere Aggiungi riferimento.
Nella finestra di dialogo Aggiungi riferimento fare clic sulla scheda Progetti. Fare clic su FriendAssembliesA quindi su OK.
Fare clic con il pulsante destro del mouse su Form1.vb nel progetto FriendAssembliesB, quindi fare clic su Visualizza codice.
Aggiungere il seguente codice alla classe Form1:
Poiché FriendAssembliesA specifica FriendAssembliesB come assembly Friend, il codice in FriendAssembliesB può accedere ai membri e ai tipi Friend da 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
Premere F5 per compilare ed eseguire il progetto.
Il programma visualizza finestre di messaggio contenenti le stringhe "Esempio di classe assembly Friend" e "Esempio di metodo assembly Friend".
Sicurezza
Ci sono somiglianze tra l'attributo InternalsVisibleToAttribute e la classe StrongNameIdentityPermission. La differenza principale è che StrongNameIdentityPermission può esigere autorizzazioni di sicurezza per eseguire una particolare sezione di codice, mentre l'attributo InternalsVisibleToAttribute controlla la visibilità dei membri e dei tipi Friend.
Vedere anche
Attività
Procedura: creare assembly Friend firmati
Concetti
Assembly Friend (Visual Basic)