Personalizar contenedores a los que se puede llamar en tiempo de ejecución

Actualización: noviembre 2007

Common Language Runtime genera un contenedor al que se puede llamar en tiempo de ejecución (RCW) a partir de los metadatos de un ensamblado de interoperabilidad. A diferencia de otros ensamblados, los ensamblados de interoperabilidad se generan mediante la importación de bibliotecas de tipos. Aunque el proceso de importación suele generar ensamblados de interoperabilidad precisos, hay algunos casos en los que puede (o debe) modificar el ensamblado de interoperabilidad para producir un RCW personalizado.

Hay varias razones por las que podría personalizar un RCW, como:

  • Uno o más tipos requieren información adicional para el cálculo de referencias.

  • Una biblioteca de tipos contiene varios tipos especializados que el contador de referencias no reconoce.

  • Una biblioteca de tipos grande puede incluir tipos innecesarios para una aplicación. Puede eliminar la necesidad de implementar tipos innecesarios si crea un ensamblado de interoperabilidad a partir de código fuente administrado.

  • Al disponer de código fuente RCW que contiene una parte de los tipos en una biblioteca de tipos grande, puede eliminar la necesidad de implementar tipos innecesarios.

Como se muestra en la ilustración siguiente, puede importar una biblioteca de tipos como un archivo DLL administrado sin personalizar el contenedor (se muestra a la izquierda). O bien, puede crear un contenedor personalizado.

Información de cálculo de referencias en bibliotecas de tipos importadas

Si tiene que personalizar el contenedor al que se puede llamar en tiempo de ejecución con instrucciones adicionales o diferentes para el cálculo de referencias, tiene dos posibilidades:

  • Modificar el ensamblado de interoperabilidad, buscando sintaxis errónea y reemplazándola por otra sintaxis alternativa. Esta opción es más adecuada para pequeños cambios en el cálculo de referencias.

  • Crear un contenedor de forma manual, basándose en un archivo existente del Lenguaje de definición de interfaces (IDL) o en una biblioteca de tipos. La declaración manual de tipos COM es un proceso difícil que requiere tener conocimientos prácticos de la herramienta Importador de la biblioteca de tipos (Tlbimp.exe), el comportamiento predeterminado del contador de referencias de interoperabilidad y COM. Este método resulta más apropiado cuando tiene una biblioteca entera de tipos especializados o cuando necesita el código fuente RCW.

Vea también

Tareas

Cómo: Editar ensamblados de interoperabilidad

Cómo: Crear contenedores manualmente

Conceptos

Tipos de datos COM

Personalizar contenedores COM a los que se puede llamar

Otros recursos

Calcular referencias de datos con interoperabilidad COM