Sdílet prostřednictvím


Pozdní vazba v řešeních pro systém Office

Některé typy v objektových modelů aplikace sady Office obsahují funkce, které jsou k dispozici prostřednictvím funkce pozdní vazba.Například některé vlastnosti a metody lze vrátit různé typy objektů v závislosti na kontextu aplikace systému Office a některé typy mohou odhalit různé metody nebo vlastnosti v různých kontextech.

Platí pro: Informace v tomto tématu se vztahují na projekty na úrovni dokumentu i na úrovni aplikace v Office 2013 a v Office 2010. Další informace najdete v tématu Dostupné funkce podle aplikací systému Office a typů projektu.

Projekty jazyka Visual Basic, kde Option Strict je vypnuto a Visual C# projekty, jejichž cílem .NET Framework 4 nebo .NET Framework 4,5 mohou pracovat přímo s typy, které využívají tyto funkce pozdní vazba.

Implicitní a explicitní přetypování vrácené hodnoty objektu

Mnoho metod a vlastností v aplikaci Microsoft Office vrátit primární sestavení interop (PIA) Object hodnoty, protože mohou vracet několik různých typů objektů.Například ActiveSheet vlastnost vrátí Object protože vrácená hodnota může být Worksheet nebo Chart objektu v závislosti na tom, co je aktivní list.

Pokud metoda nebo vlastnost vrátí Object, je nutné explicitně převést (v jazyce Visual Basic) objekt na správný typ. projektech v jazyce Visual Basic kde Option Strict na.Není nutné explicitně přetypovat Object návratové hodnoty v projekty Visual Basic kde Option Strict je vypnuto.

Ve většině případů referenční dokumentace uvádí možné typy vrácené hodnoty pro člena, který vrací Object.Převod nebo obsazení objektu umožňuje technologie IntelliSense pro objekt v editoru kódu.

Informace o převodu v jazyce Visual Basic naleznete v tématu Implicitní a explicitní převody (Visual Basic) a CType – funkce (Visual Basic).

Příklady

Následující příklad kódu ukazuje, jak převést objekt na určitý typ v projektu jazyka Visual Basic kde Option Strict na.V tomto typu projektu, musíte explicitně přetypovat Cells vlastnost Range.Tento příklad vyžaduje úroveň dokumentu aplikace Excel projekt s listu třídu s názvem Sheet1.

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

Následující příklad kódu ukazuje, jak v projektu jazyka Visual Basic implicitně převést objekt na určitý typ kde Option Strict je vypnutý nebo v projektu Visual C#, který se zaměřuje .NET Framework 4.V těchto typech projektů Cells vlastnost je implicitně přetypovat Range.Tento příklad vyžaduje úroveň dokumentu aplikace Excel projekt s listu třídu s názvem Sheet1.

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

Přístup ke členům, které jsou k dispozici pouze prostřednictvím pozdní vazba

Některé vlastnosti a metody v sestaveních PIA sady Office jsou k dispozici pouze prostřednictvím pozdní vazba.V jazyce Visual Basic projekty, kde Option Strict je vypnutý nebo v jazyce Visual C# projekty, které se zaměřují .NET Framework 4 nebo .NET Framework 4,5, pozdní vazbou funkcí v těchto jazycích můžete použít pro přístup k členům pozdní vazbou.V jazyce Visual Basic projekty, kde Option Strict je aktivní, je nutné použít reflexe pro přístup k těmto členům.

Příklady

Následující příklad kódu ukazuje, jak získat přístup k členům pozdní vazbou v projektu jazyka Visual Basic kde Option Strict je vypnutý nebo v projektu Visual C#, který se zaměřuje .NET Framework 4.V tomto příkladu se přistupuje pozdní vazbou Name vlastnost Otevřít soubor dialogové okno v aplikaci Word.Chcete-li použít tento příklad, spusťte jej z ThisDocument nebo ThisAddIn třídy v projektu aplikace 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);

Následující příklad kódu ukazuje, jak provést stejný úkol v projektu jazyka Visual Basic pomocí reflexe kde Option Strict na.

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))

Viz také

Referenční dokumentace

Option Strict – příkaz

Reflexe (C# and Visual Basic)

Koncepty

Psaní kódu v řešeních pro systém Office

Volitelné parametry v řešeních pro systém Office

Další zdroje

Použití typu dynamic (Průvodce programováním v C#)

Navrhování a tvorba řešení pro systém Office