Skip to main content

Verhalten und Einschränkungen

  • Zusätzliche Schlüsselwörter werden nicht verwendet, um auf Objektmember zuzugreifen. Beispielsweise wird in Regeln, die in .NET-Sprachen geschrieben sind, der Regelkontext als Parameter mit dem Namen Context übergeben.
  • Kompilieren Sie .NET-Assemblies mit Microsoft .NET Framework 4.0 oder höher. Die .NET-Framework-Version können Sie in den Projekteigenschaften Ihres Visual-Studio-Projekts festlegen.
  • Alle FlexiCapture-Objekte sind COM-Objekte. Daher können .NET-Skripte langsamer ausgeführt werden, wenn sie häufig auf Objektfelder zugreifen, da dabei Übergänge von verwaltetem zu nicht verwaltetem Code erfolgen.
  • FlexiCapture-Objekte unterstützen kein Multithreading.
  • Nach dem Kompilieren eines Skripts wird dessen kompilierter Code am selben Speicherort wie das Skript gespeichert. Daher kann ein .NET-Skript mehr Speicherplatz beanspruchen als andere Skripte.
  • Sie können externe Assemblies zur Verwendung in Skripten und globalen Modulen hinzufügen. Sowohl Standard- als auch kompilierte Benutzer-Assemblies werden unterstützt, und alle ihre Klassen stehen zur Verfügung. Weitere Informationen finden Sie unter Externe Assemblies.

Namespaces und Skriptobjekte

FlexiCapture-Skriptobjekte sind in den Assemblies ControllerInterop.dll und ShellInterop.dll enthalten und gehören jeweils zu den Namespaces ABBYY.FlexiCapture und ABBYY.FlexiCapture.ClientUI. Die Assemblies befinden sich im Stammordner von ABBYY FlexiCapture. Auf alle Skriptobjekte kann über diese Namespaces unter ihrem jeweiligen Namen zugegriffen werden. Beispiel:
Platzieren Sie die using-Direktiven zusammen mit Kommentaren und Leerzeilen am Anfang des Skriptkörpers. Verwenden Sie dieselbe Syntax wie in der jeweiligen Programmiersprache: using für C#.NET, Import für JScript.NET und Imports für VisualBasic.NET. Beispiel:
Im Skripteditor können Sie die using-Direktive verwenden, solange das Schlüsselwort using vor der ersten Zeile ausführbaren Codes steht. Beispiel:

Funktionen globaler Module

In .NET-Skripten werden Funktionen aus allen globalen Modulen direkt aufgerufen, ohne den Namen des globalen Moduls zu verwenden. Klassen, die im Rule Global Script Module und im Export Global Script Module definiert sind, müssen unterschiedliche Namen haben. Andernfalls tritt beim Erstellen einer Klasseninstanz im Regelcode ein Fehler auf. Um einen optionalen Parameter zu überspringen, übergeben Sie statt seines Werts System.null oder System.Type.Missing.

.NET-Skripte debuggen

Um einen Haltepunkt zu setzen, verwenden Sie die Methode System.Diagnostics.Debugger.Break. Zum Debuggen ist außerdem eine *.pdb-Datei mit Debuginformationen erforderlich. Diese Datei kann sehr groß sein. Speichern Sie sie daher nicht zusammen mit Ihren Skripten im Projekt. Wenn Sie ein .NET-Skript debuggen, geben Sie an, dass das Skript mit Debuginformationen kompiliert werden soll. In Microsoft Visual Studio 2010 können Sie sich an den Prozess anfügen, der den .NET-Code ausführt. Bei Skripten, die nicht interaktiv ausgeführt werden (im Prozess FlexiEx.exe statt in FlexiCapture.exe), wird die Schaltfläche Debug im Fenster Checking for solution für den Prozess FlexiEx.exe standardmäßig nicht angezeigt, auch dann nicht, wenn das Skript einen Haltepunkt enthält. Um die Schaltfläche anzuzeigen, klicken Sie auf das Symbol Action Center in der Taskleiste und wählen Sie Change Action Center settings → Problem reporting settings → Never check for solutions.