> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# .NET 言語で記述されたスクリプト

> ABBYY Scanning Station の .NET スクリプトに関する特徴: アセンブリ要件、ABBYY.ScanStation 名前空間、using ディレクティブ、デバッグ、スクリプトの一時停止。

以下は、.NET 言語 (C#.NET、JScript.NET、VisualBasic.NET) で記述されたスクリプトに適用される注意事項です。

<div id="assemblies-and-namespaces">
  ## アセンブリと名前空間
</div>

* .NET アセンブリは Microsoft .NET Framework 4.0 以降でコンパイルしてください。.NET Framework のバージョンは、Visual Studio のプロジェクトのプロパティで指定します。**注:** .NET Framework 2.0、3.0、および 3.5 で作成されたライブラリの使用方法について詳しくは、[各バージョンの .NET Framework に対する ABBYY FlexiCapture の互換性](http://knowledgebase.abbyy.com/article/1884)を参照してください。
* スクリプトおよびグローバル モジュールで使用するには、外部アセンブリを追加します。標準アセンブリとユーザーがコンパイルしたアセンブリの両方に対応しており、それらに含まれるすべてのクラスをスクリプトおよびグローバル モジュールで利用できます。詳しくは、[外部アセンブリ](/ja/flexi-capture/scanning-station/shared/scripts/user-assembly-ss)を参照してください。
* [Scanning Station スクリプト オブジェクト](/ja/flexi-capture/scanning-station/shared/scripts/objects) は `ScanStationInterop.dll` アセンブリに含まれ、`ABBYY.ScanStation` 名前空間に属しています。このアセンブリは Scanning Station のルート フォルダーにあります。

ABBYY Scanning Station のすべてのスクリプト オブジェクトには、`ABBYY.ScanStation` 名前空間からそれぞれの名前でアクセスできます。たとえば、次のとおりです。

```csharp theme={null}
ABBYY.ScanStation.IWorkspaceItem activeBatch = Workspace.ActiveBatch;
```

<div id="syntax">
  ## 構文
</div>

`Workspace` および `ExportBatch` キーワードを使用して、object の element にアクセスします。

コメントや空行とともに、`using` ディレクティブはスクリプト本文の先頭に記述します。構文はプログラミング言語と同じです (C#.NET では `using`、JScript.NET では `Import`、VisualBasic.NET では `Imports`) 。例:

```csharp theme={null}
using System.Drawing;
Image img = Image.FromFile( @"D:\2.png" );
```

`using` キーワードが実行コードの最初の行より前にある場合は、スクリプト エディターで `using` ディレクティブを使用できます。たとえば、

```csharp theme={null}
using System.IO;
File.Create(@"C:\sample.txt");
```

<div id="script-execution">
  ## スクリプトの実行
</div>

* .NET スクリプトでは、すべてのグローバル module の function を、グローバル module 名を指定せずに直接呼び出せます。
* 省略可能な function の parameter を省略するには、代わりに `System.Type.Missing` を渡します。
* FlexiCapture オブジェクトはマルチスレッドをサポートしていません。
* script を一時停止するには、[IWorkspace](/ja/flexi-capture/scanning-station/shared/scripts/workspace) インターフェイスの `Wait` メソッドを使用します。標準の `Thread.Sleep` メソッドでは不十分です。

<div id="debugging">
  ## デバッグ
</div>

* .NET スクリプトのデバッグには、[System.Diagnostics.Debugger.Break](http://msdn.microsoft.com/en-us/library/system.diagnostics.debugger.break.aspx) メソッドを使用します。
* .NET スクリプトをデバッグする場合は、デバッグ情報を含む `.pdb` ファイルも必要です。このファイルは非常に大きくなる場合があるため、スクリプトと一緒にプロジェクト内に保存することは避けてください。デバッグ時には、スクリプトがデバッグ情報を含めてコンパイルされるよう指定してください。
* Microsoft Visual Studio 2010 を使用している場合は、.NET コードが実行されている [プロセスにアタッチ](http://msdn.microsoft.com/en-us/library/vstudio/3s68z0b3\(v=vs.100\).aspx)できます。
