Utilisation de types non scalaires dans des interfaces invocables
Remonter à Présentation des interfaces invocables
L'architecture des services Web prend en charge les types scalaires suivants pour Delphi et C++ :
Boolean |
ByteBool |
WordBool |
LongBool |
Char |
Byte |
ShortInt |
SmallInt |
Word |
Integer |
Cardinal |
LongInt |
Int64 |
Single |
Double |
Extended |
string |
WideString |
Currency |
TDateTime |
Variant |
Les types scalaires supplémentaires suivants sont pris en charge pour C++ :
bool |
unsigned short |
_int64 |
char |
int |
AnsiString |
signed char |
unsigned |
float |
unsigned char |
long |
double |
short |
unsigned long |
long double |
Vous n'avez rien à faire de particulier lorsque vous utilisez ces types scalaires sur une interface invocable. Toutefois, si votre interface inclut des propriétés ou des méthodes qui utilisent d'autres types, votre application doit recenser ces types avec le registre des types distants.
Les tableaux dynamiques peuvent être utilisés dans les interfaces invocables. Ils doivent être recensés dans le registre des types distants, mais ce recensement intervient automatiquement lorsque vous recensez l'interface. Le registre des types distants extrait toutes les informations requises des informations de type générées par le compilateur.
En outre, les types énumérés et ceux correspondant à l'un des types scalaires automatiquement soumis au marshaling peuvent être utilisés dans une interface invocable. Comme les types de tableaux dynamiques, ils sont automatiquement recensés dans le registre des types distants.
Pour tous les autres types, comme les tableaux statiques, les structures ou enregistrements, les ensembles, les interfaces ou les classes, vous devez établir une correspondance entre le type et une classe distante. Une classe distante est une classe qui inclut des informations de type accessibles à l'exécution (RTTI). Votre interface doit alors utiliser la classe distante à la place du tableau statique, de la structure ou enregistrement, de l'ensemble, de l'interface ou de la classe correspondants. Toutes les classes distantes que vous créez doivent être recensées dans le registre des types distants. Comme pour les autres types, ce recensement intervient automatiquement.