Soap.InvokeRegistry.TInvokableClassRegistry.RegisterHeaderClass

De RAD Studio API Documentation
Aller à : navigation, rechercher

Delphi

procedure RegisterHeaderClass(Info: PTypeInfo; AClass: TClass;
const HeaderName: InvString; const HeaderNamespace: InvString;
DefaultMethodType: eHeaderMethodType = hmtAll;
Required: Boolean = False); overload;
procedure RegisterHeaderClass(Info: PTypeInfo; AClass: TClass;
DefaultMethodType: eHeaderMethodType = hmtAll;
Required: Boolean = False); overload;

C++

void __fastcall RegisterHeaderClass(System::Typinfo::PTypeInfo Info, System::TClass AClass, const InvString HeaderName, const InvString HeaderNamespace, eHeaderMethodType DefaultMethodType = (eHeaderMethodType)(0x0), bool Required = false)/* overload */;
void __fastcall RegisterHeaderClass(System::Typinfo::PTypeInfo Info, System::TClass AClass, eHeaderMethodType DefaultMethodType = (eHeaderMethodType)(0x0), bool Required = false)/* overload */;

Propriétés

Type Visibilité  Source Unité  Parent
procedure
function
public
Soap.InvokeRegistry.pas
Soap.InvokeRegistry.hpp
Soap.InvokeRegistry TInvokableClassRegistry

Description

Recense une classe représentant un en-tête qui accompagne les appels à une interface invocable.

Utilisez RegisterHeaderClass pour recenser un descendant de TSOAPHeader. Le recensement d'un descendant de TSOAPHeader a une double finalité :

Sur les serveurs, lorsqu'un descendant de TSOAPHeader est recensé, sa définition est exportée dans des documents WSDL afin que les applications utilisant ces documents reconnaissent et traitent l'en-tête.

Sur les serveurs et les clients, le recensement associe le descendant de TSOAPHeader à un nom d'en-tête et à l'espace de nommage dans lequel ce nom est défini.

Info pointe sur les informations de type de l'interface invocable que l'en-tête doit accompagner. Si l'en-tête doit être inclus dans des messages invoquant plusieurs interfaces ou dans des réponses à plusieurs interfaces, vous devez appeler cette méthode pour chaque type d'interface.

AClass décrit le descendant de TSOAPHeader qui représente l'en-tête.

HeaderName représente le nom de l'en-tête, tel qu'il est défini dans l'espace de nommage de l'en-tête. Si HeaderName n'est pas fourni, le nom de l'en-tête est supposé être le même que celui du type sous lequel il a été recensé dans le registre des types distants.

HeaderNamespace est l'URI de l'espace de nommage dans lequel le nom de l'en-tête est défini. Si HeaderName et HeaderNamespace ne sont pas fournis, l'en-tête est supposé être défini dans le même espace de nommage que l'interface à laquelle il est associé.

DefaultMethodType indique si l'en-tête doit être utilisé sur les messages de requête, sur les messages de réponse ou sur les deux types de messages. Cette valeur par défaut est associée à l'interface dans son ensemble. Elle peut être changée pour des méthodes individuelles de l'interface par des appels ultérieurs à la méthode RegisterHeaderMethod.

Required indique si l'en-tête doit être inclus dans les messages relatifs à l'interface. Lorsque Required a pour valeur true, l'en-tête doit être inclus et assimilé par le destinataire du message. Lorsque Required a pour valeur false, l'en-tête est facultatif. Remarquez que si l'en-tête est requis par certains messages mais pas par tous, vous devez affecter la valeur false au paramètre Required, puis ajouter cette contrainte aux méthodes individuelles par des appels ultérieurs à la méthode RegisterHeaderMethod.

Remarque :  Après un appel à RegisterHeaderClass, la classe en-tête est recensée afin qu'elle soit associée à toutes les méthodes de l'interface spécifiée. Si un seul sous-ensemble des méthodes de l'interface utilise l'en-tête, ou si l'en-tête doit avoir un type de méthode différent pour certaines méthodes sur l'interface, ou encore si l'en-tête est requis par un sous-ensemble des méthodes sur l'interface, vous pouvez l'indiquer en appelant la méthode RegisterHeaderMethod pour chaque méthode que l'en-tête accompagne.

Voir aussi