Utiliser des espaces de noms avec les WSDL-Proxy dans le Kit de développement logiciel (SDK) de l’adaptateur LOB WCF
Le Kit de développement logiciel (SDK) de l’adaptateur métier (LOB) Microsoft Windows Communication Foundation (WCF) génère WSDL et des proxys pour une carte à l’aide des valeurs fournies par le développeur à l’aide de l’Assistant Développement de l’adaptateur LOB WCF ou spécifiées dans le code via la modification de la variable privée SERVICENAMESPACE et/ou de la Namespace
propriété de l’adaptateur.
Les types de schéma et les éléments définis dans le <schéma> wsdl :types><utilisent le {OperationNamespace} par défaut. Si un type particulier a un TypeNamespace remplacé dans l’objet TypeMetadata , cet espace de noms est utilisé pour le type complexe et/ou la définition d’élément.
Impact sur WSDL
Le tableau suivant montre comment les différents espaces de noms d’un adaptateur personnalisé affectent le WSDL correspondant. Dans le tableau , ~{OperationNamespace} est le mappage d’espace de noms de classe d’un URI ; par exemple, si {OperationNamespace} est « myscheme://a.b/c », ~{OperationNamespace} est myscheme.a.b.c.
WSDL, construction | Syntax |
---|---|
WSDL targetNamespace, Xmlns :ts |
{Custom} Adapter.Namespace |
<wsdl :portType> | {scheme}.~{OperationNamespace} |
Nom du message d’entrée WSDL | {scheme}.~{OperationNamespace}_{OperationName}_InputMessage |
Nom du message de sortie WSDL | {scheme}.~{OperationNamespace}_{OperationName}_OutputMessage |
<wsdl :types><schema> targetNamespace | {scheme} ://{OperationNamespace} |
<élément><complexType> | Utilisez {TypeNamespace} si sa valeur n’est pas null ou vide. |
Impact sur le proxy
Trois attributs différents dans le proxy sont affectés par les espaces de noms :
[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)]