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