Compartir a través de


Uso de espacios de nombres con el WSDL-Proxy en el SDK del adaptador de LOB de WCF

El SDK del adaptador de línea de negocio (LOB) de Microsoft Windows Communication Foundation (WCF) genera WSDL y servidores proxy para un adaptador mediante valores proporcionados por el desarrollador mediante el Asistente para desarrollo de adaptadores de LOB de WCF o especificado en el código mediante la modificación de la variable privada SERVICENAMESPACE o la Namespace propiedad del adaptador.

Los tipos de esquema y los elementos definidos en el <esquema> wsdl:types><usan {OperationNamespace} de forma predeterminada. Si un tipo determinado tiene un typeNamespace invalidado establecido en el objeto TypeMetadata , ese espacio de nombres se usa para la definición de tipo complejo o elemento.

Impacto en WSDL

En la tabla siguiente se muestra cómo afectan los distintos espacios de nombres de un adaptador personalizado al WSDL correspondiente. En la tabla, ~{OperationNamespace} es la asignación de espacio de nombres de clase de un URI; por ejemplo, si {OperationNamespace} es "myscheme://a.b/c", ~{OperationNamespace} será myscheme.a.b.c.

Construcción WSDL Syntax
TargetNamespace de WSDL,

Xmlns:ts
{Custom} Adapter.Namespace
<wsdl:portType> {scheme}.~{OperationNamespace}
Nombre del mensaje de entrada de WSDL {scheme}.~{OperationNamespace}_{OperationName}_InputMessage
Nombre del mensaje de salida de WSDL {scheme}.~{OperationNamespace}_{OperationName}_OutputMessage
<wsdl:types><schema> targetNamespace {scheme}://{OperationNamespace}
<elemento><complexType> Use {TypeNamespace} si su valor no es null o está vacío.

Impacto en el proxy

Tres atributos diferentes en el proxy se ven afectados por los espacios de nombres:

  • [System.ServiceModel.ServiceContractAttribute(Name="{scheme}.~{OperationNamespace}", Namespace="{Custom}Adapter.Namespace"]

  • [System.ServiceModel.MessageContractAttribute(WrapperName="DivideResponse", WrapperNamespace="{scheme}://{OperationNamespace}", IsWrapped=true)]

  • [System.ServiceModel.MessageBodyMemberAttribute(Namespace="{scheme}://{TypeNamespace}", Order=0)]

Consulte también

Procedimientos recomendados de desarrollo mediante el SDK del adaptador de LOB de WCF