Enlace en tiempo de ejecución en las soluciones de Office
Algunos tipos de los modelos de objetos de aplicaciones de Office proporcionan funcionalidad que está disponible a través de las características de enlace en tiempo de ejecución.Por ejemplo, algunos métodos y propiedades pueden devolver distintos tipos de objetos en función del contexto de la aplicación de Office y algunos tipos pueden exponer métodos o propiedades diferentes en contextos diferentes.
Se aplica a: La información de este tema se aplica a los proyectos de nivel de documento y los proyectos de nivel de aplicación para Office 2013 y Office 2010. Vea Características disponibles por aplicación y tipo de proyecto de Office.
Los proyectos de Visual Basic donde Option Strict desactivado y Visual c# destinados a .NET Framework 4 o .NET Framework 4.5 puede trabajar directamente con los tipos que emplean estas características de tarde- enlace.
Conversión implícita y explícita de los valores devueltos de los objetos
Muchos métodos y propiedades de los ensamblados de interoperabilidad primarios (PIA) de Microsoft Office devuelven valores Object, porque tienen la capacidad de devolver varios tipos de objetos diferentes.Por ejemplo, la propiedad ActiveSheet devuelve Object porque su valor devuelto puede ser el objeto Chart o Worksheet, dependiendo de qué sea la hoja activa.
Cuando un método o una propiedad devuelve Object, debe convertir explícitamente en Visual Basic) el objeto a los proyectos correctos de Visual Basic de tipo en donde Option Strict on.No tiene que convertir explícitamente los valores devueltos de Object en proyectos de Visual Basic donde Option Strict desactivado.
En la mayoría de los casos, la documentación de referencia muestra los posibles tipos de valor devuelto para un miembro que devuelve Object.La conversión del objeto proporciona la habilitación de IntelliSense para el objeto en el Editor de código.
Para obtener información sobre las conversiones en Visual Basic, vea Conversiones implícita y explícita (Visual Basic) y CType (Función) (Visual Basic).
Ejemplos
El ejemplo de código siguiente muestra cómo convertir un objeto a un tipo específico en un proyecto de Visual Basic donde Option Strict on.En este tipo de proyecto, debe convertir explícitamente la propiedad de Cells a Range.En este ejemplo se requiere un proyecto de Excel de nivel de documento con una clase de hoja de cálculo denominada Sheet1.
Dim castRange As Excel.Range = CType(Globals.Sheet1.Cells(1, 1), Excel.Range)
En el siguiente ejemplo de código se muestra cómo convertir implícitamente un objeto a un tipo específico en un proyecto de Visual Basic donde Option Strict está desactivada o en un proyecto de Visual C# destinado a .NET Framework 4.En estos tipos de proyectos, la propiedad Cells se convierte implícitamente a Range.En este ejemplo se requiere un proyecto de Excel de nivel de documento con una clase de hoja de cálculo denominada Sheet1.
Dim dynamicRange As Excel.Range = Globals.Sheet1.Cells(1, 1)
Excel.Range dynamicRange = Globals.Sheet1.Cells[1, 1];
Obtener acceso a miembros que solo están disponibles a través del enlace en tiempo de ejecución
Algunas propiedades y métodos de los PIA de Office solo están disponibles a través del enlace en tiempo de ejecución.En los proyectos de Visual Basic donde está o en proyectos de Visual c# Option Strict destinados .NET Framework 4 o .NET Framework 4.5, puede utilizar las características de enlace en estos lenguajes para tener acceso a los miembros del tarde- límite.En proyectos de Visual Basic donde Option Strict on, deberá utilizar la reflexión para tener acceso a estos miembros.
Ejemplos
En el siguiente ejemplo de código se muestra cómo tener acceso a los miembros enlazados en tiempo de ejecución en un proyecto de Visual Basic donde Option Strict está desactivada o en un proyecto de Visual C# destinado a .NET Framework 4.En este ejemplo se tiene acceso a la propiedad enlazada en tiempo de ejecución Name del cuadro de diálogo Abrir archivo de Word.Para usar este ejemplo, ejecútelo desde la clase ThisDocument o ThisAddIn en un proyecto 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);
El ejemplo de código siguiente muestra cómo utilizar la reflexión para realizar la misma tarea en un proyecto de Visual Basic donde Option Strict 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))
Vea también
Referencia
Conceptos
Escribir código en soluciones de Office
Parámetros opcionales en las soluciones de Office