Partager via


Comment : créer des assemblys friend non signés

Mise à jour : novembre 2007

Cet exemple indique comment utiliser des assemblys friend avec les assemblys non signés.

Pour créer un assembly et un assembly friend dans Visual Studio

  1. Créez un projet pour une application Windows Forms nommée FriendAssembliesB.

  2. Dans le menu Fichier, pointez sur Ajouter, puis cliquez sur Nouveau projet.

  3. Dans la boîte de dialogue Ajouter un nouveau projet, cliquez sur Bibliothèque de classes et nommez le projet FriendAssembliesA.

  4. Remplacez le contenu de Class1.vb dans le projet FriendAssembliesA par le code suivant. Le code utilise l'attribut InternalsVisibleToAttribute pour déclarer FriendAssembliesB en tant qu'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. Cliquez avec le bouton droit sur le projet FriendAssembliesB dans l'Explorateur de solutions puis cliquez sur Ajouter une référence.

  6. Dans la boîte de dialogue Ajouter une référence, cliquez sur l'onglet Projets. Cliquez sur FriendAssembliesA puis cliquez sur OK.

  7. Cliquez avec le bouton droit sur Form1.vb dans le projet FriendAssembliesB, puis cliquez sur Afficher le code.

  8. Ajoutez le code suivant à la classe Form1 :

    Dans la mesure où FriendAssembliesA a spécifié FriendAssembliesB comme assembly friend, le code figurant dans FriendAssembliesB peut accéder aux membres et aux types Friend à partir de 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. Appuyez sur F5 pour compiler et exécuter le projet.

    Le programme affiche des zones de message contenant les chaînes « Friend Assemblies Sample Class » (Exemple de classe d'assemblys friend) et « Friend Assemblies Sample Method » (Exemple de méthode d'assemblys friend).

Sécurité

Il existe des ressemblances entre l'attribut InternalsVisibleToAttribute et la classe StrongNameIdentityPermission. La différence principale est que StrongNameIdentityPermission peut demander des autorisations de sécurité pour exécuter une section particulière de code, alors que l'attribut InternalsVisibleToAttribute contrôle la visibilité des types et des membres Friend.

Voir aussi

Tâches

Comment : créer des assemblys Friend signés

Concepts

Assemblys friend (Visual Basic)

Référence

InternalsVisibleToAttribute