Поделиться через


Позднее связывание в решениях Office

Некоторые типы в объектных моделях приложений Office предоставляют функции, доступные через компоненты позднего связывания.Например, некоторые методы и свойства могут возвращать различные типы объектов в зависимости от контекста приложения Office, а некоторые типы могут предоставлять различные методы или свойства в различных контекстах.

Применение. Сведения этого раздела применяются к проектам уровня документа и уровня приложения для Office 2013 и Office 2010. См. раздел Доступность функций по типам приложений Office и проектов.

Проекты Visual Basic в Option Strict и проекты Visual C#, целевой объект .NET Framework 4 или .NET Framework 4.5 может работать непосредственно с типами, которые используют эти функции позднего связывания.

Неявное и явное приведение возвращаемых значений объекта

Многие методы и свойства основной сборки взаимодействий в Microsoft Office (PIA) возвращают значения Object, так как они возвращают различные типы объектов.Например, свойство ActiveSheet возвращает объект Object, так как его возвращаемое значение может быть объектом Worksheet или Chart в зависимости от активного листа.

Когда метод или свойство возвращают Object, необходимо явным образом преобразовать (в Visual Basic) объект к нужному вводится в проектах Visual Basic, где параметр Option Strict включен.Нет необходимости явно привести возвращаемые значения Object в проектах Visual Basic, Option Strict.

В большинстве случаев в справочной документации приведен список возможных типов возвращаемых значений для элемента, который возвращает объект Object.Преобразование или приведение в правильный формат объектов активирует IntelliSense для работы с объектами в Code Editor.

Общие сведения о преобразовании в Visual Basic см. в разделах Явные и неявные преобразования (Visual Basic) и Функция CType (Visual Basic).

3xxe951d.collapse_all(ru-ru,VS.110).gifПримеры

В следующем примере кода показано, как привести объект к определенному типу в проект Visual Basic, где параметр Option Strict включен.В этом типе проекта необходимо явно привести свойство Cells к Range.Для данного примера требуется проект Excel на уровне документа с классом листа Sheet1.

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

В следующем примере кода показывается неявное приведение объекта к определенному типу в проекте Visual Basic с отключенным параметром Option Strict или в проекте Visual C#, предназначенном для .NET Framework 4.В этих типах проектов необходимо свойство Cells неявным образом приводится к Range.Для данного примера требуется проект Excel на уровне документа с классом листа Sheet1.

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

Доступ к элементам, доступным только через позднее связывание

Некоторые свойства и методы в основных сборках взаимодействия Office доступны только с помощью позднего связывания.В проектах Visual Basic, Option Strict из или в проектах Visual C# - #, целевой объект .NET Framework 4 или .NET Framework 4.5, можно использовать функции позднего связывания в этих языках из-за привязанные к членам.В проектах Visual Basic, где параметр Option Strict включен, необходимо использовать отражение для доступа к этим членам.

3xxe951d.collapse_all(ru-ru,VS.110).gifПримеры

В следующем примере кода показывается обращение к элементам с поздним связыванием в проекте Visual Basic с отключенным параметром Option Strict или в проекте Visual C#, предназначенном для .NET Framework 4.В этом примере выполняется обращение к свойству Name диалогового окна Word Открытие файла с поздним связыванием.Чтобы использовать следующий пример кода, запустите его в проекте Word из класса ThisDocument или ThisAddIn.

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

В следующем примере кода показано, как использовать отражение для выполнения той же задачи в проекте Visual Basic, где параметр Option Strict включен.

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

См. также

Ссылки

Оператор Option Strict

Отражение (C# и Visual Basic)

Основные понятия

Написание кода в решениях Office

Необязательные параметры в решениях Office

Другие ресурсы

Использование типа dynamic (Руководство по программированию на C#)

Проектирование и создание решений Office