Fichiers ApiDefinitions &StructsAndEnums
Lorsque Objective Sharpie s’exécute correctement, il génère et génère des Binding/ApiDefinitions.cs
Binding/StructsAndEnums.cs
fichiers.
Ces deux fichiers sont ajoutés à un projet de liaison dans Visual Studio pour Mac ou transmis directement aux outils ou bmac
aux btouch
outils pour produire la liaison finale.
Dans certains cas, ces fichiers générés peuvent être tous nécessaires, mais plus souvent, le développeur devra modifier manuellement ces fichiers générés pour résoudre les problèmes qui n’ont pas pu être gérés automatiquement par l’outil (tels que ceux marqués avec un Verify
attribut).
Voici quelques-unes des étapes suivantes :
- Ajustement des noms : parfois, vous souhaiterez ajuster les noms des méthodes et des classes pour qu’ils correspondent aux instructions de conception du .NET Framework.
- Méthodes ou propriétés : Les heuristiques utilisées par Objective Sharpie sélectionnent parfois une méthode à transformer en propriété. À ce stade, vous pouvez décider s’il s’agit du comportement prévu ou non.
- Connecter des événements : vous pouvez lier vos classes à vos classes déléguées et générer automatiquement des événements pour ceux-ci.
- Connecter des notifications : il n’est pas possible d’extraire le contrat d’API des notifications à partir des fichiers d’en-tête purs, ce qui nécessite un voyage vers la documentation de l’API. Si vous souhaitez des notifications fortement typées, vous devez mettre à jour le résultat.
- Curation de l’API : à ce stade, vous pouvez choisir de fournir des constructeurs supplémentaires, d’ajouter des méthodes (pour autoriser la syntaxe d’initialisation en C#on-construction), de surcharger et d’implémenter vos propres interfaces sur le fichier de définitions supplémentaires.
Consultez la liaison d’une description d’API pour voir comment ces fichiers s’intègrent dans le processus de liaison, comme illustré dans le diagramme ci-dessous :
Reportez-vous à la référence types de liaison pour plus d’informations sur le contenu de ces fichiers.