Aller au contenu
EN FR

Modèle objet .NET généré

Statut documentaire : architecture — voir Maturité et preuves.

Le binding .NET est généré à partir du modèle de publication du Runtime. Le code applicatif doit manipuler les types managés générés plutôt que construire manuellement des descriptors ABI ou des noms de points d'entrée natifs.

Le générateur conserve la forme sémantique de la surface Runtime publiée :

  • les types Runtime publiés deviennent des types managés générés ;
  • les constructeurs publiés deviennent des chemins de construction/factory managés ;
  • les méthodes publiées deviennent des méthodes managées ;
  • les propriétés lisibles et modifiables conservent une syntaxe de propriété normale ;
  • les énumérations restent des valeurs typées ;
  • les valeurs objet/interface publiées sont représentées par des wrappers managés sur des références Runtime ;
  • les tableaux conservent leur type d'élément au lieu de devenir des buffers natifs non typés.
métadonnées de publication Runtime
        |
        v
identité ABI stable
        |
        v
projection .NET
 types / méthodes / propriétés
        |
        v
IClientRuntime

Noms générés et identité Runtime

Les noms managés constituent une projection propre au langage. L'identité d'invocation est indépendante de ces noms et est établie avant la projection C# grâce aux valeurs stables TypeId et MethodId.

Cette séparation permet d'atteindre la même opération logique via un adaptateur ABI local ou par sérialisation RPC sans modifier le modèle objet public généré.

Dépendances entre packages

Le générateur enregistre les dépendances entre packages publiés. Un projet généré peut ainsi référencer les projets générés dont il dépend au lieu de recopier leurs types dans chaque assembly de sortie.

Cela préserve l'identité des types entre assemblies générés et évite plusieurs définitions managées d'un même type Runtime.

Filtrage de publication

Tous les types et membres d'implémentation ne sont pas exportés automatiquement. La couche de publication filtre les types inaccessibles et les formes non supportées avant l'émission d'un binding cible. Cela inclut notamment les membres non publics, certaines formes de références de méthodes, les records non plats dans des positions non supportées et les types qui ne peuvent pas être représentés de manière sûre par l'ABI.

Le SDK généré est donc une projection du contrat Runtime publié, et non un dump de réflexion de l'implémentation.

Statut

Les sources du générateur confirment le modèle de publication, le graphe de dépendances, l'identité stable des appels et la stratégie de projection vers les langages cibles. Les noms exacts des classes et les API de confort dépendent de la release ; cette page décrit donc l'architecture du binding plutôt qu'une surface de package généré figée.