Règles spécifiques aux scripts écrits en langages .Net

Cette section décrit les règles spécifiques applicables aux scripts écrits en langages .Net.

  • Les paramètres du script, transmis aux autres scripts avec le mot clé « this », sont transmis aux scripts .Net en tant que paramètres standard. Par exemple, dans les règles écrites en langages .Net, le contexte de la règle est transmis en tant que paramètre ayant le nom « Context ».
  • Le projet doit donc être compilé sous  Microsoft .Net Framework 4.0 (et supérieur). Sous Visual Studio; la version de .Net Framework peut être spécifiée dans les paramètres du projet.
  • Il est possible d'ajouter un assemblage externe pouvant être utilisé dans des scripts ou des modules globaux. Les assemblages utilisateur standard et compilés peuvent tous deux être utilisés. Toutes les classes d'assemblages ajoutées seront disponibles dans les scripts et dans les modules globaux. Pour plus d'informations, consultez la section Assemblages externes.
  • Une fois le script compilé, un corps de script compilé est stocké à l'emplacement où le script a été défini. Par conséquent, le script .Net peut prendre plus de place que les autres scripts.
  • Tous les objets FlexiCapture sont définis en tant qu'objets COM. Le fonctionnement des scripts .Net est souvent ralenti lors du traitement des champs de l'objet en raison des transitions gérées/non gérées.
  • Les objets FlexiCapture ne prennent pas en charge le multithreading.
  • Pour le débogage des scripts .Net, la méthode System.Diagnostics.Debugger.Break est utilisée.
  • Lors du débogage de scripts .Net, il vous faut également un fichier *.pdb contenant des informations de débogage. Ce fichier peut être très volumineux et il est déconseillé de le stocker dans le projet avec vos scripts. Toutefois, lors du débogage d'un script .Net, vous devez spécifier que le script doit être compilé à l'aide de certaines informations de débogage.
    Si vous utilisez Microsoft Visual Studio 2010, vous pouvez associer le processus dans lequel le code .Net est exécuté.
  • Les objets de script FlexiCapture sont stockés dans les assemblages ControllerInterop.dll et ShellInterop.dll et appartiennent respectivement aux espaces de noms d'ABBYY.FlexiCapture et ABBYY.FlexiCapture.ClientUI. Les assemblages se situent dans le dossier racine du programme.
  • Les scripts .Net peuvent accéder à toutes les classes d'ABBYY FlexiCapture sous leurs propres noms de classes depuis les espaces de noms ABBYY.FlexiCapture et ABBYY.FlexiCapture.ClientUI. Par exemple :
ABBYY.FlexiCapture.IDocument document = Batch.Documents[i];>
ABBYY.FlexiCapture.ClientUI.IToolbars toolbars = TaskWindow.MainWindow.Toolbars;
    
  • Les directives « Using » peuvent être écrites au début du corps du script, à l'endroit où se trouvent les chaînes commentaires et les chaînes vides. La syntaxe utilisée dans le langage de programmation est également utilisée (using pour C#.Net, Import pour JScript.Net et Imports pour VisualBasic.Net). Par exemple :
using System.Drawing;
Image img = Image.FromFile( @"D:\2.png" );
FCTools.ShowMessage( img.VerticalResolution.ToString(), false );
    

Remarque :Vous pouvez utiliser la directive using dans l'éditeur de script, à condition que le mot clé « using » apparaisse avant la première ligne du code exécutable. Par exemple :

using ABBYY.FlexiCapture;
using ABBYY.FlexiCapture.ClientUI;
    
  • Dans les scripts .Net, les fonctions des modules globaux s'appellent directement, il n'est pas nécessaire d'utiliser le nom du module global.
    Remarque :Les classes définies dans le module global des scripts des règles et dans le module global des scripts d'exportation doivent porter un nom différent. Sinon, lorsque vous créerez une instance de classe dans le code de la règle, une erreur se produira.
  • Si vous ne souhaitez pas spécifier la valeur d'un paramètre facultatif de fonction (pour les fonctions ayant des paramètres facultatifs), vous devez transmettre System.null ou System.Type.Missing au lieu de ce que vous transmettriez habituellement.

Remarque :Par défaut, pour les scripts exécutés de manière non interactive (c'est-à-dire par le processus FlexiEx.exe, et non par FlexiCapture.exe), le bouton Déboguer du processus FlexiEx.exe n'est pas affiché dans la fenêtre « Recherche de solutions » (pour les scripts contenant un point d'arrêt). Pour que ce bouton s'affiche, cliquez sur l'icône Centre de maintenance de votre barre des tâches et sélectionnez Modifier les paramètres du centre de maintenance → Paramètres de signalement des problèmes → Ne jamais rechercher de solutions.

10.11.2020 12:08:04


Please leave your feedback about this article