Partilhar via


Ligação tardia em soluções do Office

Qualquer tipo nos modelos de objeto de aplicativos do Office fornece funcionalidade que está disponível através dos recursos de associação tardia.Por exemplo, alguns métodos e propriedades podem retornar diferentes tipos de objetos dependendo do contexto do aplicativo do Office, e alguns tipos podem expor os diferentes métodos ou propriedades em contextos diferentes.

Aplicáve a: As informações neste tópico se aplicam a projetos em nível de aplicativo e em nível de documento para o Office 2013 e o Office 2010. Consulte Recursos disponíveis pelo aplicativo do Office e o tipo de projeto.

Em projetos Visual Basic e Visual Option Strict é C# se projetos que tem como alvo .NET Framework 4 ou .NET Framework 4.5 pode trabalhar diretamente com tipos que empregam esses recursos de associação tardia.

Conversão explícita e implícita de valores de retorno de objeto

Muitos métodos e propriedades primárias nos valores de Object de retorno de (PIAs) dos assemblies de interoperabilidade do Microsoft Office, porque podem retornar vários tipos diferentes de objetos.Por exemplo, a propriedade de ActiveSheet retorna Object como seu valor de retorno pode ser Worksheet ou um objeto de Chart , dependendo do que a folha é ativa.

Quando um método ou propriedade retorna Object, você deve explicitamente converta (no Visual Basic) o objeto para correto em projetos do Visual Basic onde Option Strict está ativado.Você não tem que converter explicitamente valores de retorno de Object em projetos do Visual Basic onde Option Strict está.

Na maioria dos casos, documentação de referência lista os tipos possíveis do valor de retorno para um membro que retorna Object.Converter ou converter o objeto permitem o IntelliSense para o objeto no editor de códigos.

Para obter informações sobre a conversão em Visual Basic, consulte Conversões implícitas e explícitas (Visual Basic) e Função CType (Visual Basic).

3xxe951d.collapse_all(pt-br,VS.110).gifExemplos

O exemplo de código a seguir demonstra como converter um objeto para um tipo específico em um projeto Visual Basic onde Option Strict está ativado.Neste tipo de projeto, você deve converter explicitamente a propriedade de Cells a Range.Esse exemplo requer um projeto do excel a nível de classe com uma planilha chamada Sheet1.

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

O exemplo de código a seguir demonstra como converter implicitamente um objeto para um tipo específico em um projeto Visual Basic de onde Option Strict está fora ou em um projeto Visual C# que tem como alvo .NET Framework 4.Nesses tipos de projetos, a propriedade de Cells é convertida implicitamente para Range.Esse exemplo requer um projeto do excel a nível de classe com uma planilha chamada Sheet1.

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

Acessando membros que estão disponíveis somente através de associação tardia

Alguns propriedades e métodos em PIAs do Office estão disponíveis somente através de associação tardia.No Visual Basic projetos de onde Option Strict está desativado ou Visual C# se projetos que tem como alvo .NET Framework 4 ou .NET Framework 4.5, você pode usar os recursos de associação tardia nessas linguagens para acessar membros de associação tardia.No Visual Basic projetos onde Option Strict está ativado, você deve usar o reflexo para acessar esses membros.

3xxe951d.collapse_all(pt-br,VS.110).gifExemplos

O exemplo de código a seguir demonstra como acessar membros de associação tardia em um projeto Visual Basic de onde Option Strict está fora ou em um projeto Visual C# que tem como alvo .NET Framework 4.Este exemplo acessa a propriedade de Name de associação tardia da caixa de diálogo de Abrir Arquivo Word.Para usar este exemplo, ele execução da classe de ThisDocument ou de ThisAddIn em um projeto de 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);

O exemplo de código demonstra como usar o reflexo para realizar a mesma tarefa em um projeto Visual Basic onde Option Strict está ativado.

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

Consulte também

Referência

Opção Strict Statement

Reflexão (C# e Visual Basic)

Conceitos

Escrevendo código em soluções do Office

Parâmetros opcionais em soluções do Office

Outros recursos

Usar o tipo dinâmico (C# Programming Guide)

Projetando e criando soluções do Office