Aller au contenu
EN FR

Identité d'invocation stable

Statut documentaire : reference — voir Maturité et preuves.

Les appels logiCells générés sont identifiés par des identifiants numériques dérivés des métadonnées canoniques de publication.

La paire essentielle est :

TypeId + MethodId

L'appel transporte aussi un type d'appel, par exemple constructeur, statique, instance ou release lorsque le transport en a besoin.

Pourquoi utiliser des identifiants

Les noms visibles dans un langage sont utiles aux développeurs mais insuffisants comme clés de dispatch binaire ou distant. Les surcharges, l'héritage, les renommages propres au langage cible et l'échappement des mots réservés peuvent modifier la surface textuelle sans modifier le membre publié sous-jacent.

Les générateurs calculent donc les identifiants à partir de clés canoniques de type et de signature avant la projection vers un langage cible.

Utilisation par les SDK générés

Le générateur C# enregistre le TypeId de chaque modèle de classe généré et le MethodId des méthodes et accesseurs de propriétés générés. Ces identifiants sont intégrés dans les descripteurs d'invocation générés.

Un getter et un setter reçoivent des identités de méthode distinctes. Les propriétés callback sont aussi détectées comme une forme de publication distincte.

Réutilisation par RPC

Les requêtes RPC transportent la même identité orientée ABI, notamment abiVersion, typeId, methodId, typeName, methodName, instanceId et callKind.

Les noms restent utiles pour le diagnostic et la découverte, mais les identifiants numériques constituent l'identité de dispatch.

Règle de compatibilité

Les bindings doivent considérer TypeId et MethodId comme des données de contrat générées. Le code applicatif ne doit ni les calculer, ni les coder en dur, ni leur attribuer une autre sémantique.

Si une modification de publication change une signature canonique, la régénération est la voie sûre. La compatibilité doit être vérifiée au démarrage via les versions ABI/runtime et les métadonnées de capacités plutôt que de supposer que les identifiants restent valides entre publications incompatibles.