Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Acerca del ensamblado de interoperabilidad primario de InfoPath Microsoft Office

Office 2013 and later

Última modificación:martes, 28 de junio de 2011

Hace referencia a:InfoPath 2013 | Office 2013 | Visual Studio

La aplicación InfoPath se crea como una aplicación de modelo de objetos componentes (COM) que expone sus interfaces de programación para la automatización externa como interfaces COM. Para admitir la creación de soluciones de InfoPath que usan los lenguajes de código administrado como Visual C# y Visual Basic, la opción de Compatibilidad con programación de .NET en el programa de instalación de InfoPath instala tres ensamblados de interoperabilidad. Los ensamblados de interoperabilidad son ensamblados de .NET que actúen como puente entre el código administrado y no administrado, asignar a los miembros de objeto de COM a .NET equivalente administrado a (miembros).

Los archivos de los tres ensamblados de interoperabilidad que instala InfoPath se denominan:

  • Microsoft.Office.Interop.InfoPath.dll

  • Microsoft.Office.Interop.InfoPath.SemiTrust.dll

  • Microsoft.Office.Interop.InfoPath.Xml.dll

This topic discusses the object model exposed through the Microsoft.Office.Interop.InfoPath interop assembly, which is used exclusively for external automation code. For information on the Microsoft.Office.Interop.InfoPath.SemiTrust assembly, which is used exclusively for writing and running managed code that runs from within InfoPath form templates (.xsn), see Modelos de objetos compatibles con InfoPath 2003.

The default installation option of the InfoPath setup program installs the Microsoft.Office.Interop.InfoPath assembly in the Global Assembly Cache (GAC), the contents of which can be viewed from the C:\Windows\Assembly folder (or in C:\Windows\assembly\GAC_MSIL when viewing the file system directly). This assembly is referred to as the "Microsoft Office InfoPath Primary Interop Assembly" and is often used in conjunction with the Microsoft.Office.Interop.InfoPath.Xml assembly, which is also installed in the GAC, to automate the InfoPath application from external applications that use managed code. For information about the Microsoft.Office.Interop.InfoPath.Xml assembly, see Acerca del ensamblado de interoperabilidad XML de InfoPath.

Si el ensamblado Microsoft.Office.Interop.InfoPath no es visible en la GAC, debería confirmar que InfoPath se ha instalado correctamente. De forma predeterminada, se establece la opción de Compatibilidad con programación de .NET en el programa de instalación a Ejecutar desde Mi PC, siempre y cuando se instala el paquete redistribuible de .NET Framework 1.1, Kit de desarrollo de Software (SDK) de .NET Framework 1.1 o una versión posterior de .NET Framework antes de ejecutar el programa de instalación. Si estos ensamblados de interoperabilidad no están disponibles en su equipo, debe confirmar que está instalado .NET Framework 1.1 o posterior y, a continuación, usar programas y características del Panel de Control para cambiar el programa de instalación mediante la opción de Compatibilidad con programación de .NET en Microsoft Office InfoPath a Ejecutar desde Mi PC.

Para obtener información acerca de cómo descargar el paquete redistribuible de .NET Framework 1.1, consulte el Paquete redistribuible de .NET Framework 1.1.

Although the process of writing managed code for a given task is very similar to performing the same task using a language such as Visual Basic for Applications or JScript, the object model exposed when viewing the Microsoft.Office.Interop.InfoPath namespace from the Object Browser in Microsoft Visual Studio looks more complex. This is because interoperability with the .NET Framework requires a COM server to expose all of its public interfaces, as well as some additional constructs required by the .NET Framework itself. For more information on how and why the object model exposed by an interop assembly appears more complex, see the "How COM Objects are Exposed to Managed Code" section of the Modelos de objetos compatibles con InfoPath 2003 topic.

Utilizar IntelliSense

The examples in this section assume that you have established references to the Microsoft.Office.Interop.InfoPath and Microsoft.Office.Interop.InfoPath.Xml assemblies. For information on how to set references and additional external automation examples, see Ejemplos y escenarios de automatización externa.

Para poder usar la finalización de instrucciones IntelliSense de Microsoft en el código de automatización externa, debe crear una variable de objeto de una instancia de la clase Application tal como se muestra en la siguiente línea de código.

Application myApp = 
    new Microsoft.Office.Interop.InfoPath.Application();

Después de crear la variable de objeto, cuando escriba el nombre de variable seguido de un período, se muestra una lista desplegable con los miembros de la clase Application para seleccionar.

Para trabajar con un formulario de InfoPath, declare una variable de objeto de tipo XDocumenty, a continuación, inicializarlo abriendo el formulario de la colección de XDocuments de la variable de objeto Application , como se muestra en la siguiente línea de código.

XDocument myXDoc = myApp.XDocuments.Open(
    "c:\\temp\\Form1.xml",
    (int) XdDocumentVersionMode.xdFailOnVersionOlder);

La lista de lista desplegable de finalización de instrucciones de IntelliSense para los miembros de la clase XDocument se mostrará cuando escriba el nombre de la variable seguido de un punto.

Para trabajar con el contenido del documento XML subyacente del formulario con Microsoft XML Core Services (MSXML), debe crear una variable de tipo IXMLDOMDocument2y, a continuación, utilice la propiedad DOM de la clase XDocument para asignar el modelo de objetos de documento (DOM) de XML del formulario a la variable.

IXMLDOMDocument2 doc= myXDoc.DOM as IXMLDOMDocument2;

La lista de lista desplegable de finalización de instrucciones de IntelliSense para los miembros de la clase IXMLDOMDocument2 se mostrará cuando escriba el nombre de la variable seguido de un período, que le permite usar MSXML para trabajar con el documento XML.

Utilizar la documentación de referencia de la Biblioteca de clases

La organización del espacio de nombres Microsoft.Office.Interop.InfoPath documentación de referencia de biblioteca de clases refleja las relaciones entre las interfaces de coclase y las interfaces heredadas que implementan.

Cuando se abre un tema de una interfaz de coclase, como Application, el vínculo a los miembros de la interfaz de coclase después de la descripción de la interfaz al principio del tema muestra un tema vacío. Para mostrar la lista de miembros que se implementa mediante la interfaz de coclase, debe abrir el tema de la interfaz más reciente que se hereda de la coclase y, a continuación, abra la tabla de sus miembros. Se proporciona un vínculo a la interfaz heredado al principio de la sección de comentarios en el tema de la interfaz de coclase.

Cuando se presiona F1 en el Editor de código de Visual Studio, el comportamiento es similar, excepto en que el miembro en el que se invoca ayuda F1 se mostrará directamente, porque suele trabajar con miembros de una interfaz. Sin embargo, el hecho de que se puede implementar un miembro de una interfaz con versión puede ser confuso la primera vez que se encuentre. Por ejemplo, si escribe myXDocument.UI.Alert y coloque el cursor en Alert y presione F1, un tema titulado "UI2.Se muestra el método Alert". Esto es debido a que el método Alert es una implementación de un miembro de la interfaz UI2 .

Pasar parámetros opcionales a los miembros del modelo de objetos de InfoPath

Si un miembro del modelo de objetos de InfoPath contiene un parámetro opcional y no especifica un valor de dicho parámetro, debe pasar el campo Type.Missing para ese parámetro. Error al pasar el campo de Type.Missing cuando se omite un valor real se producirá un error de compilación. Esto es así para el código escrito en C# y Visual Basic. Por ejemplo, el método SelectNodes de la interfaz de ViewObject incluye dos parámetros opcionales: varEndNode y varViewContext. Una línea de código que no se especifican los valores reales para estos parámetros opcionales debe tener un aspecto como en los ejemplos siguientes.

myXDocument.View.SelectNodes(group1, Type.Missing, Type.Missing);
Mostrar: