Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Representa un tipo definido por el usuario (UDT) que se va a incluir en el contrato de servicio.
<configuración>
<system.serviceModel>
<comContracts>
<comContract>
<userDefinedTypes>
<userDefinedType>
Syntax
<comContracts>
<comContract>
<userDefinedTypes>
<userDefinedType name="String"
typeLibID="String"
typeLibVersion="String"
typeDefID="String">
</userDefinedType>
</userDefinedTypes>
</comContract>
</comContracts>
Atributos y elementos
En las siguientes secciones se describen los atributos, los elementos secundarios y los elementos primarios.
Attributes
| Atributo | Description |
|---|---|
name |
Atributo opcional que contiene una cadena que proporciona el nombre de tipo legible. El tiempo de ejecución no lo usa, pero ayuda a un lector a distinguir los tipos. |
TypeDefID |
Cadena GUID que identifica el tipo UDT específico dentro de la biblioteca de tipos registrada. |
TypeLibID |
Cadena GUID que identifica la biblioteca de tipos registrada que define el tipo. |
TypeLibVersion |
Cadena que identifica la versión de la biblioteca de tipos que define el tipo. |
Elementos secundarios
Ninguno.
Elementos primarios
| Elemento | Description |
|---|---|
userDefinedTypes |
Colección de userDefinedType elementos. |
Observaciones
El entorno de ejecución de integración com+ crea servicios inspeccionando la biblioteca de tipos. Cuando un componente COM+ contiene métodos que pasan un VALOR VARIANT, el sistema no puede determinar los tipos reales que se van a pasar antes del tiempo de ejecución. Por lo tanto, cuando se intenta pasar un tipo definido por el usuario (UDT) dentro de un VARIANT, se produce un error porque no es un tipo conocido para la serialización.
Para evitar este problema, puede agregar los UDT al archivo de configuración para que se puedan incluir como tipos conocidos en el contrato de servicio adecuado. Para ello, debe identificar de forma única el UDT y los contratos, es decir, las interfaces COM originales que lo usan.
En el ejemplo siguiente se muestra cómo agregar dos UDT específicos a la <userDefinedTypes> sección del archivo de configuración para este propósito.
<comContracts>
<comContract contract="{5163B1E7-F0CF-4B6A-9A02-4AB654F34284}"
namespace="http://tempuri.org/5163B1E7-F0CF-4B6A-9A02-4AB654F34284"
name="_Broker"
requireSession="true">
<userDefinedTypes>
<userDefinedType name="CustomerType"
typeLibID="{91DC728C-4F1A-45de-A9B6-B538E209CEA6}"
typeLibVersion="1.0"
typeDefID="{D129765C-F211-434e-825A-9A63198C41F2}">
</userDefinedType>
<userDefinedType name="AddressType"
typeLibID="{91DC728C-4F1A-45de-A9B6-B538E209CEA6}"
typeLibVersion="1.0"
typeDefID="{4616AE0D-687A-43B7-BC63-141AE3DFD099}">
</userDefinedType>
</userDefinedTypes>
<exposedMethods>
<exposedMethod name="BuyStock" />
<exposedMethod name="SellStock" />
<exposedMethod name="ExecuteTransaction" />
</exposedMethods>
</comContract>
</comContracts>
Cuando se inicializa el servicio, integration Runtime busca los tipos especificados y los agrega a la colección de tipos conocidos para los contratos especificados.