Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Representa um UDT (Tipo Definido pelo Usuário) que deve ser incluído no contrato de serviço.
<configuration>
<system.serviceModel>
<comContracts>
<comContract>
<userDefinedTypes>
<userDefinedType>
Sintaxe
<comContracts>
<comContract>
<userDefinedTypes>
<userDefinedType name="String"
typeLibID="String"
typeLibVersion="String"
typeDefID="String">
</userDefinedType>
</userDefinedTypes>
</comContract>
</comContracts>
Atributos e elementos
As seções a seguir descrevem atributos, elementos filho e elementos pai.
Attributes
| Attribute | Description |
|---|---|
name |
Um atributo opcional que contém uma cadeia de caracteres que fornece o nome do tipo legível. Isso não é usado pelo runtime, mas ajuda um leitor a distinguir os tipos. |
TypeDefID |
Uma cadeia de caracteres GUID que identifica o tipo UDT específico na biblioteca de tipos registrada. |
TypeLibID |
Uma cadeia de caracteres GUID que identifica a biblioteca de tipos registrada que define o tipo. |
TypeLibVersion |
Uma cadeia de caracteres que identifica a versão da biblioteca de tipos que define o tipo. |
Elementos filho
Nenhum.
Elementos pai
| Elemento | Description |
|---|---|
userDefinedTypes |
Uma coleção de userDefinedType elementos. |
Observações
O runtime de integração COM+ cria serviços inspecionando a biblioteca de tipos. Quando um componente COM+ contém métodos que passam por uma VARIANT, o sistema não pode determinar os tipos reais a serem passados antes do runtime. Portanto, quando você tenta passar um UDT (Tipo Definido pelo Usuário) em um VARIANT, ele falha porque não é um tipo conhecido para serialização.
Para contornar esse problema, você pode adicionar os UDTs ao arquivo de configuração para que eles possam ser incluídos como tipos conhecidos no contrato de serviço apropriado. Para fazer isso, você precisa identificar exclusivamente o UDT e os contratos, ou seja, as interfaces COM originais que o usam.
O exemplo a seguir demonstra a adição de dois UDTs específicos à <userDefinedTypes> seção do arquivo de configuração para essa finalidade.
<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>
Quando o serviço é inicializado, o runtime de integração procura os tipos especificados e os adiciona à coleção de tipos conhecidos para os contratos especificados.