Liaison tardive dans les solutions OfficeLate binding in Office solutions

Certains types dans les modèles objet des applications Office fournissent des fonctionnalités qui sont disponibles via les fonctionnalités de liaison tardive.Some types in the object models of Office applications provide functionality that is available through late-binding features. 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 des méthodes ou propriétés dans des contextes différents.For example, some methods and properties can return different types of objects depending on the context of the Office application, and some types can expose different methods or properties in different contexts.

S’applique à : les informations contenues dans cette rubrique s’applique au document-projets et ajouter de VSTO de niveau-dans les projets.Applies to: The information in this topic applies to document-level projects and VSTO Add-in projects. Consultez fonctionnalités disponibles par type d’application et de projet Office.See Features available by Office application and project type.

Projets Visual Basic dans lesquels Option Strict est désactivé et les projets Visual c# qui ciblent le .NET Framework 4.NET Framework 4 ou .NET Framework 4.5.NET Framework 4.5 peut travailler directement avec les types qui utilisent ces fonctionnalités de liaison tardive.Visual Basic projects where Option Strict is off and Visual C# projects that target the .NET Framework 4.NET Framework 4 or the .NET Framework 4.5.NET Framework 4.5 can work directly with types that employ these late-binding features.

Conversion implicite et explicite de l’objet des valeurs de retourImplicit and explicit casting of object return values

Nombreuses méthodes et propriétés de retournent des assemblys PIA (Primary Interop Assemblies) de Microsoft Office Object des valeurs, car elles peuvent retourner plusieurs types d’objets différents.Many methods and properties in the Microsoft Office primary interop assemblies (PIAs) return Object values, because they can return several different types of objects. Par exemple, le ActiveSheet propriété retourne un Object , car sa valeur de retour peut être un Worksheet ou Chart objet, en fonction de la feuille active.For example, the ActiveSheet property returns an Object because its return value can be a Worksheet or Chart object, depending on what the active sheet is.

Lorsqu’une méthode ou propriété retourne un Object, vous devez convertir explicitement (en Visual Basic) l’objet en type correct dans les projets Visual Basic où Option Strict sur.When a method or property returns a Object, you must explicitly convert (in Visual Basic) the object to the correct type in Visual Basic projects where Option Strict is on. Vous n’avez pas explicitement converti Object retournent des valeurs dans les projets Visual Basic où Option Strict est désactivée.You do not have to explicitly cast Object return values in Visual Basic projects where Option Strict is off.

Dans la plupart des cas, la documentation de référence répertorie les types de la valeur de retour possibles pour un membre qui retourne un Object.In most cases, the reference documentation lists the possible types of the return value for a member that returns an Object. Conversion ou le cast de l’objet permet à IntelliSense pour l’objet dans l’éditeur de Code.Converting or casting the object enables IntelliSense for the object in the Code Editor.

Pour plus d’informations sur la conversion en Visual Basic, consultez conversions implicites et explicites (Visual Basic) et CType, fonction (Visual Basic).For information about conversion in Visual Basic, see Implicit and explicit conversions (Visual Basic) and CType function (Visual Basic).

ExemplesExamples

L’exemple de code suivant montre comment effectuer un cast d’un objet à un type spécifique dans un projet Visual Basic où Option Strict sur.The following code example demonstrates how to cast an object to a specific type in a Visual Basic project where Option Strict is on. Dans ce type de projet, vous devez caster explicitement la Cells propriété à un Range.In this type of project, you must explicitly cast the Cells property to a Range. Cet exemple requiert un projet Excel de niveau document avec une classe de feuille de calcul nommée Sheet1.This example requires a document-level Excel project with a worksheet class named Sheet1.

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

L’exemple de code suivant illustre la conversion implicite d’un objet à 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.NET Framework 4.The following code example demonstrates how to implicitly cast an object to a specific type in a Visual Basic project where Option Strict is off or in a Visual C# project that targets the .NET Framework 4.NET Framework 4. Dans ces types de projets, les Cells propriété est implicitement convertie dans un Range.In these types of projects, the Cells property is implicitly cast to a Range. Cet exemple requiert un projet Excel de niveau document avec une classe de feuille de calcul nommée Sheet1.This example requires a document-level Excel project with a worksheet class named Sheet1.

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

Accès aux membres qui sont disponibles seulement via la liaison tardiveAccess members that are available only through late binding

Certaines propriétés et méthodes dans les assemblys PIA Office sont uniquement disponibles via une liaison tardive.Some properties and methods in the Office PIAs are available only through late binding. En Visual Basic, projets dans lesquels Option Strict est désactivé ou dans les projets Visual c# qui ciblent le .NET Framework 4.NET Framework 4 ou .NET Framework 4.5.NET Framework 4.5, vous pouvez utiliser les fonctionnalités de liaison tardive dans ces langages pour accéder aux membres de la liaison tardive.In Visual Basic projects where Option Strict is off or in Visual C# projects that target the .NET Framework 4.NET Framework 4 or the .NET Framework 4.5.NET Framework 4.5, you can use the late binding features in these languages to access late-bound members. En Visual Basic, projets dans lesquels Option Strict est activé, vous devez utiliser la réflexion pour accéder à ces membres.In Visual Basic projects where Option Strict is on, you must use reflection to access these members.

ExemplesExamples

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.NET Framework 4.The following code example demonstrates how to access late-bound members in a Visual Basic project where Option Strict is off or in a Visual C# project that targets the .NET Framework 4.NET Framework 4. Cet exemple accède à la liaison tardive nom propriété de la ouvrir le fichier boîte de dialogue dans Word.This example accesses the late-bound Name property of the File Open dialog box in Word. Pour utiliser cet exemple, exécutez-le à partir de la ThisDocument ou ThisAddIn classe dans un projet Word.To use this example, run it from the ThisDocument or ThisAddIn class in a Word project.

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 Visual Basic où Option Strict sur.The following code example demonstrates how to use reflection to accomplish the same task in a Visual Basic project where Option Strict is 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 aussiSee also

Écrire du code dans les solutions Office Write code in Office solutions
Paramètres optionnels dans les solutions Office Optional parameters in Office solutions
Utilisez Type dynamic (C# guide de programmation) Use Type dynamic (C# programming guide)
Option Strict, instruction Option Strict statement
Réflexion (C#)Reflection (C#)
Réflexion (Visual Basic)Reflection (Visual Basic)
Concevoir et créer des solutions OfficeDesign and create Office solutions