Skip to main content

Comportamiento y limitaciones

  • No se utilizan palabras clave adicionales para acceder a los miembros de los objetos. Por ejemplo, en las reglas escritas en lenguajes .NET, el contexto de la regla se pasa como un parámetro denominado Context.
  • Compile ensamblados .NET con Microsoft .NET Framework 4.0 o una versión posterior. Puede establecer la versión de .NET Framework en las propiedades del proyecto de Visual Studio.
  • Todos los objetos de FlexiCapture son objetos COM, por lo que los scripts .NET pueden ejecutarse más lentamente cuando acceden con frecuencia a campos de objetos, debido a las transiciones entre código administrado y no administrado.
  • Los objetos de FlexiCapture no admiten la ejecución multihilo.
  • Una vez compilado un script, su código compilado se almacena en la misma ubicación que el script, por lo que un script .NET puede ocupar más espacio que otros scripts.
  • Puede agregar ensamblados externos para utilizarlos en scripts y módulos globales. Se pueden utilizar tanto ensamblados de usuario estándar como compilados, y todas sus clases estarán disponibles. Para obtener más información, consulte Ensamblados externos.

Espacios de nombres y objetos de script

Los objetos de script de FlexiCapture se almacenan en los ensamblados ControllerInterop.dll y ShellInterop.dll y pertenecen a los espacios de nombres ABBYY.FlexiCapture y ABBYY.FlexiCapture.ClientUI, respectivamente. Los ensamblados se encuentran en la carpeta raíz de ABBYY FlexiCapture. Se puede acceder a todos los objetos de script mediante sus propios nombres desde estos espacios de nombres. Por ejemplo:
Escriba las directivas using al inicio del cuerpo del script, junto con los comentarios y las líneas en blanco. Utilice la misma sintaxis que en el lenguaje de programación: using para C#.NET, Import para JScript.NET e Imports para VisualBasic.NET. Por ejemplo:
En el editor de scripts, puede usar la directiva using siempre que la palabra clave using aparezca antes de la primera línea de código ejecutable. Por ejemplo:

Funciones de módulos globales

En los scripts de .NET, las funciones de todos los módulos globales se llaman directamente, sin usar el nombre del módulo global. Las clases definidas en el Rule Global Script Module y en el Export Global Script Module deben tener nombres diferentes. De lo contrario, se producirá un error al crear una instancia de la clase en el código de una regla. Para omitir un parámetro opcional, pase System.null o System.Type.Missing en lugar de su valor.

Depurar scripts de .NET

Para establecer un punto de interrupción, use el método System.Diagnostics.Debugger.Break. La depuración también requiere un archivo *.pdb con información de depuración. Este archivo puede ser muy grande, por lo que debe evitar almacenarlo en el proyecto junto con los scripts. Cuando depure un script de .NET, especifique que debe compilarse con información de depuración. En Microsoft Visual Studio 2010, puede conectarse al proceso que ejecuta el código .NET. En el caso de los scripts que se ejecutan de forma no interactiva (en el proceso FlexiEx.exe en lugar de FlexiCapture.exe), el botón Depurar no se muestra de forma predeterminada para el proceso FlexiEx.exe en la ventana Buscando una solución, incluso si los scripts contienen un punto de interrupción. Para mostrar el botón, haga clic en el icono Centro de actividades de la barra de tareas y seleccione Cambiar la configuración del Centro de actividades → Configuración de informes de problemas → No buscar nunca soluciones.