Besonderheiten von in .Net-Sprachen geschriebenen Skripten

Dieser Abschnitt beschreibt Besonderheiten von in .Net-Sprachen geschriebenen Skripten.

  • Skriptparameter, die an andere Skripte mit dem Schlüsselwort "this" übergeben werden, werden an .Net-Skripte als gewöhnliche Parameter weitergegeben. Beispiel: In Regeln, die in .Net-Sprachen geschrieben wurden, wird der Kontext der Regel als ein Parameter mit dem Namen "Context" weitergegeben.
  • Daher muss das Projekt mit Microsoft .Net Framework 4.0 oder älter kompiliert werden. Die Version von .Net Framework kann unter den Projekteinstellungen in Visual Studio angegeben werden.
  • Es kann außerdem eine externe Assembly hinzugefügt werden, die in Skripten und globalen Modulen verwendet werden kann. Es können sowohl Standard- als auch kompilierte Benutzerassemblys verwendet werden. Alle Klassen der hinzugefügten Assemblys sind dann in Skripten und globalen Modulen verfügbar. Einzelheiten finden Sie unter Externe Assemblys.
  • Nachdem das Skript kompiliert wurde, wird ein kompilierter Skriptinhalt am selben Speicherort abgelegt, an dem auch das Skript definiert wurde. Daher kann ein .Net-Skript mehr Platz benötigen als andere Skripte.
  • Alle FlexiCapture-Objekte werden als COM-Objekte definiert, daher kann beim häufigen Adressieren der Objektfelder die Funktion der .Net-Skripte aufgrund der verwalteten-nicht verwalteten Übergänge verlangsamt sein.
  • Objekte in FlexiCapture unterstützen kein Multithreading.
  • Für das Debugging von .Net-Skripten wird die Methode System.Diagnostics.Debugger.Break verwendet.
  • Außerdem benötigen Sie für das Debugging von .Net-Skripten eine *.pdb-Datei mit Debugging-Informationen. Diese Datei kann sehr groß sein und wir raten deshalb davon ab, sie gemeinsam mit Ihren Skripts im Projekt zu speichern. Beim Debugging eines .Net-Skripts müssen Sie jedoch angeben, dass das Skript mit bestimmten Debugging-Informationen kompiliert werden soll.
    Wenn Sie Microsoft Visual Studio 2010 verwenden, können Sie Prozess anhängen bei dem der .Net-Code ausgeführt wird.
  • FlexiCapture Skriptobjekte werden in den Zusammenstellungen ControllerInterop.dll und ShellInterop.dll gespeichert und gehören jeweils zu den Namespace ABBYY.FlexiCapture und ABBYY.FlexiCapture.ClientUI. Die Zusammenstellungen befinden sich im Stammverzeichnis des Programms.
  • .Net-Skripte können unter ihren eigenen Namen als Klassen von den Namensräumen ABBYY.FlexiCapture und ABBYY.FlexiCapture.ClientUI aus auf alle ABBYY FlexiCapture-Klassen zugreifen. Beispiel:
ABBYY.FlexiCapture.IDocument document = Batch.Documents[i];>
ABBYY.FlexiCapture.ClientUI.IToolbars toolbars = TaskWindow.MainWindow.Toolbars;
    
  • Die Using-Direktiven können zusammen mit den Kommentaren und leeren Zeichenfolgen in den Beginn des Skriptinhalts geschrieben werden. Es wird die gleiche Syntax wie in der Programmiersprache verwendet (using für C#.Net, Import für JScript.Net und Imports für VisualBasic.Net). Beispiel:
using System.Drawing;
Image img = Image.FromFile( @"D:\2.png" );
FCTools.ShowMessage( img.VerticalResolution.ToString(), false );
    

Hinweis. Sie können die Using-Direktive im Scripteditor verwenden, vorausgesetzt, dass Schlüsselwort Using erscheint vor der ersten Zeile des ausführbaren Codes. Beispiel:

using ABBYY.FlexiCapture;
using ABBYY.FlexiCapture.ClientUI;
    
  • Innerhalb von .Net-Skripten werden die Funktionen von allen globalen Modulen aus direkt ohne die Verwendung des Namens des globalen Moduls aufgerufen.
    Hinweis. Die in Globale Regelskriptmodul und in Globales Exportskriptmodul definierten Klassen müssen unterschiedliche Namen haben. Sonst tritt bei der Erstellung einer Instanz der Klasse im Regelcode ein Fehler auf.
  • Wenn der Wert eines optionalen Parameters der Funktion nicht angegeben werden soll (für Funktionen mit optionalen Parametern), müssen Sie stattdessen System.null oder System.Type.Missing übermitteln.

Hinweis. Für Skripte, die nicht-interaktiv ausgeführt werden (d.h. vom Prozess FlexiEx.exe anstatt von FlexiCapture.exe), wird die Schaltfläche Debug für den Prozess FlexiEx.exe im Fenster "Überprüfe auf Lösung" standardmäßig (für Skripte, die einen Haltepunkt enthalten) nicht angezeigt. Damit die Schaltfläche angezeigt wird, klicken Sie auf das Symbol Action Center (Wartungscenter) in Ihrer Taskleiste und wählen Change Action Center settings → Problem reporting settings → Never check for solutions (Wartungscentereinstellungen ändern → Einstellungen für Problemberichterstattung → Nie nach Lösungen suchen).

10.11.2020 12:08:03


Please leave your feedback about this article