liaison tardive dans les solutions Office

certains types dans les modèles objet des applications Office fournissent des fonctionnalités disponibles via les fonctionnalités de liaison tardive. par exemple, certaines méthodes et propriétés peuvent retourner différents types d’objets en fonction du contexte de l’application Office, et certains types peuvent exposer différentes méthodes ou propriétés dans différents contextes.

S’applique à : Les informations contenues dans cette rubrique s’appliquent aux - projets de niveau document et aux projets de compléments VSTO - . Consultez fonctionnalités disponibles par type d’application et de projet Office.

Visual Basic projets où Option Strict a la valeur off et les projets Visual C# qui ciblent le .NET Framework 4 ou le .NET Framework 4.5 peuvent fonctionner directement avec les types qui utilisent ces fonctionnalités de liaison tardive.

Conversion implicite et explicite des valeurs de retour de l’objet

de nombreuses méthodes et propriétés dans le Microsoft Office les assemblys pia (primary interop assembly) retournent des Object valeurs, car elles peuvent retourner plusieurs types d’objets différents. Par exemple, la ActiveSheet propriété retourne un Object , car sa valeur de retour peut être un Worksheet Chart objet ou, en fonction de la feuille active.

quand une méthode ou une propriété retourne un Object , vous devez convertir explicitement (dans Visual Basic) l’objet vers le type approprié dans Visual Basic projets où Option Strict a la valeur on. vous n’avez pas besoin de convertir explicitement les Object valeurs de retour dans les projets Visual Basic où Option Strict est désactivée.

Dans la plupart des cas, la documentation de référence répertorie les types possibles de la valeur de retour pour un membre qui retourne un Object . La conversion ou le cast de l’objet Active IntelliSense pour l’objet dans l’éditeur de code.

pour plus d’informations sur la conversion dans Visual Basic, consultez conversions implicites et explicites (Visual Basic) et CType function (Visual Basic).

Exemples

l’exemple de code suivant montre comment effectuer un cast d’un objet en un type spécifique dans un projet Visual Basic dans lequel Option Strict a la valeur on. Dans ce type de projet, vous devez effectuer un cast explicite Cells de la propriété en Range . cet exemple requiert un projet de Excel au niveau du document avec une classe de feuille de calcul nommée Sheet1 .

Dim castRange As Excel.Range = CType(Globals.Sheet1.Cells(1, 1), Excel.Range)

l’exemple de code suivant montre comment effectuer un cast implicite d’un objet en un type spécifique dans un projet Visual Basic, où Option Strict est désactivé ou dans un projet Visual C# qui cible le .NET Framework 4 . Dans ces types de projets, la Cells propriété est convertie implicitement en Range . cet exemple requiert un projet de Excel au niveau du document avec une classe de feuille de calcul nommée Sheet1 .

Dim dynamicRange As Excel.Range = Globals.Sheet1.Cells(1, 1)
Excel.Range dynamicRange = Globals.Sheet1.Cells[1, 1];

Accéder aux membres qui sont uniquement disponibles via la liaison tardive

certaines propriétés et méthodes dans les assemblys pia Office sont disponibles uniquement via la liaison tardive. dans Visual Basic projets où Option Strict est désactivé ou dans les projets Visual C# qui ciblent le .NET Framework 4 ou le .NET Framework 4.5 , vous pouvez utiliser les fonctionnalités de liaison tardive dans ces langages pour accéder aux membres à liaison tardive. dans Visual Basic projets où Option Strict a la valeur on, vous devez utiliser la réflexion pour accéder à ces membres.

Exemples

l’exemple de code suivant montre comment accéder aux membres à liaison tardive dans un projet Visual Basic, où Option Strict est désactivé ou dans un projet Visual C# qui cible le .NET Framework 4 . Cet exemple accède à la propriété de nom à liaison tardive de la boîte de dialogue ouvrir un fichier dans Word. Pour utiliser cet exemple, exécutez-le à partir de la ThisDocument ThisAddIn classe ou dans un projet Word.

Private Sub TestDynamicDialog()
    Dim dialog As Word.Dialog = Application.Dialogs(Word.WdWordDialog.wdDialogFileOpen)
    dialog.Name = "Testing"
    dialog.Show()
    MessageBox.Show(dialog.Name)
End Sub
dynamic dialog = Application.Dialogs[Word.WdWordDialog.wdDialogFileOpen];
dialog.Name = "Testing";
dialog.Show();
MessageBox.Show(dialog.Name);

l’exemple de code suivant montre comment utiliser la réflexion pour accomplir la même tâche dans un projet de Visual Basic où Option Strict a la valeur on.

Dim dlg As Word.Dialog = Application.Dialogs(Word.WdWordDialog.wdDialogFileOpen)
Dim dlgType As Type = GetType(Word.Dialog)

' Set the Name property of the dialog box.
dlgType.InvokeMember("Name", _
    Reflection.BindingFlags.SetProperty Or _
        Reflection.BindingFlags.Public Or _
        Reflection.BindingFlags.Instance, _
    Nothing, dlg, New Object() {"Testing"}, _
    System.Globalization.CultureInfo.InvariantCulture)

' Display the dialog box.
dlg.Show()

' Show the Name property.
MessageBox.Show(dlgType.InvokeMember("Name", _
    Reflection.BindingFlags.GetProperty Or _
        Reflection.BindingFlags.Public Or _
        Reflection.BindingFlags.Instance, _
    Nothing, dlg, Nothing, _
    System.Globalization.CultureInfo.InvariantCulture))

Voir aussi