Appel d'un assembly à partir de Mercator

0000001367     -      16/05/2011
Obsolète

Mercator prévoit deux Xfonctions qui permettent l'appel aisé d'assemblies, en mettant en œuvre de façon transparente la mécanique du "wrapper" reprise sur cette page :

Utilisation de Xdotnet

La fonction Xdotnet permet de créer directement un objet instancié à partir d'une classe contenue dans un assembly. Des paramètres peuvent être passés au constructeur (init) de cette classe. Si la création de cet objet aboutit, alors Xdotnet renvoie cet objet. Si par contre, elle échoue, le résultat est une chaîne de caractères contenant le message d'erreur.

Exemple :

local le_ox_dotnet,la_dll,la_classe
la_dll=addbs(m.DIR_MERC)+'MercatorPtPda.dll'
la_classe="MercatorPtPda.Class1"
le_ox_dotnet=xdotnet(m.la_dll,m.la_classe)
if type('m.le_ox_dotnet')='C'
     stop(m.le_ox_dotnet)
     return
endif

à partir de cette ligne, toutes les méthodes et propriétés de la classe définie peuvent être utilisées sur la variable le_ox_dotnet.

Par exemple :

ret=le_ox_dotnet.SdfConnect(addbs(m.rep_data))

Si des paramètres doivent être passés au constructeur de la classe, il suffit de les ajouter à droite de "m.la_classe", séparés par des virgules, dans la commande xdotnet(m.la_dll,m.la_classe)

Par exemple :

xdotnet(m.la_dll,m.la_classe,m.param1,m.param2,m.param3)

 

Utilisation de XdotnetStatic

La fonction XdotnetStatic permet d'évaluer une méthode statique d'une classe statique contenue dans un assembly. Des paramètres peuvent être passés à cette méthode statique. Si l'évaluation de cette méthode aboutit, alors XdotnetStatic renvoie cette évaluation. Si par contre, elle échoue, le résultat est une chaîne de caractères contenant le message d'erreur.

Exemple : return xdotnetStatic(addbs(m.dir_merc)+"MercatorTunnel.dll","MercatorApi.Api","XencodeUrl",m.l_url)



Utilisation de XdotnetUi

La fonction XdotnetUi permet quant à elle de créer directement un objet instancié à partir d'une classe contenue dans un assembly. Cet objet doit être un composant visuel et peut être ajouté automatique à une fenêtre de la partie Visual FoxPro de Mercator. Cette fenêtre doit être identifiée par son HWND, handle unique, disponible en tant que propriété de fenêtre dans Mercator. Des paramètres peuvent aussi être passés au constructeur (init) de cette classe. Si la création de cet objet aboutit, alors XdotnetUi renvoie cet objet. Si par contre, elle échoue, le résultat est une chaîne de caractères contenant le message d'erreur.

Exemple :

xdotnetUi(m.la_dll,m.la_classe,_screen.hwnd,m.param1,m.param2,m.param3)

Voir aussi ces pages : exemple 1, exemple 2.


Utilisation de XdotnetFromMai

La fonction XdotnetFromMai permet d'évaluer en une seule opération, soit une propriété, soit une méthode d'une classe contenue dans un assembly. L'ensemble des paramètres de cette opération unique sont stockés dans un fichier MAI (Mercator Assembly Info - format XML), qui est produit et édité à partir de Mercator. Cet éditeur est disponible via "Outils / Prompt Fox", onglet ".Net", bouton de droite.

xmleditor

Les zones de cet éditeur se complètent comme suit :

  • Module : module optionnel écrit en langage Xbase qui sera exécuté avant l'instanciation de la classe. Typiquement, ce module va calculer des paramètres qui seront passés, soit au constructeur, soit à la méthode appelée.
  • Assembly : localisation de l'assembly à traiter. Une fois ce fichier sélectionné, Mercator présente de façon automatique des classes disponibles ainsi que les méthodes et propriétés dans ces classes.
  • Class : sélection de la classe à utiliser. A droite de cette zone, il est possible de spécifier les paramètres à passer au constructeur de cette classe. Les paramètres sont à séparer par des virgules.
  • Member : sélection de la propriété ou de la méthode à évaluer au sein de cette classe. Si une méthode est choisie, Mercator présente automatiquement en dessous la liste des paramètres requis par cette méthode, en indiquant le nom du paramètre ainsi que son type. Les paramètres à passer à cette méthode doivent être complétés.

Si une erreur se produit dans le processus lancé par XdotnetFromMai, une boîte de dialogue est affichée et l'erreur est aussi renvoyée par la fonction.



Vous consultez une page relative à une version de Mercator qui n'est plus commercialisée ni supportée.

Mercator est une application .net qui utilise une base de données SQL Server. Les informations sur cette page ne correspondent plus à ces caractéristiques.