Condividi tramite


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

  1. Creare un nuovo progetto per un'applicazione Windows Form denominata FriendAssembliesB.

  2. Scegliere Aggiungi dal menu File, quindi fare clic su Nuovo progetto.

  3. Nella finestra di dialogo Aggiungi nuovo progetto fare clic su Libreria di classi e denominare il progetto FriendAssembliesA.

  4. 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
    
  5. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto FriendAssembliesB, quindi scegliere Aggiungi riferimento.

  6. Nella finestra di dialogo Aggiungi riferimento fare clic sulla scheda Progetti. Fare clic su FriendAssembliesA quindi su OK.

  7. Fare clic con il pulsante destro del mouse su Form1.vb nel progetto FriendAssembliesB, quindi fare clic su Visualizza codice.

  8. 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
    
  9. 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)

Riferimenti

InternalsVisibleToAttribute