XML シリアライザー ジェネレーター ツール (Sgen.exe)
XML シリアライザー ジェネレーターは、指定されたアセンブリの種類に対応する XML シリアル化アセンブリを作成します。 シリアル化アセンブリは、指定された型のオブジェクトのシリアル化または逆シリアル化の際に、XmlSerializer の起動パフォーマンスを向上させます。
Note
このツールは、.NET Framework アセンブリに固有です。 .NET (Core) アセンブリの XML シリアライザーを生成するには、「.NET Core で Microsoft XML Serializer Generator を使用する」を参照してください。
構文
コマンド ラインでツールを実行します。
sgen [options]
ヒント
.NET Framework ツールを正常に機能させるには、Visual Studio 開発者コマンド プロンプトまたは Visual Studio Developer PowerShell を使用するか、Path
、Include
、Lib
の各環境変数を正しく設定する必要があります。 これらの環境変数を設定するには、<SDK>\<version>\Bin ディレクトリにある SDKVars.bat を実行します。
パラメーター
オプション | 説明 |
---|---|
/a[ssembly]:filename | アセンブリ、または filename によって指定される実行可能ファイルに含まれるすべての型に対して、シリアル化コードを生成します。 指定できるファイル名は 1 つのみです。 この引数を複数指定した場合は、最後のファイル名が使用されます。 |
/c[ompiler]:options | オプションを C# コンパイラに渡すように指定します。 csc.exe のすべてのオプションがサポートされ、コンパイラに渡されます。 このオプションを使用して、アセンブリに署名してキー ファイルを指定するように指定できます。 |
/d[ebug] | デバッガーで使用できるイメージを生成します。 |
/f[orce] | 同じ名前の既存のアセンブリに上書きします。 既定値は false です。 |
/help または /? | このツールのコマンド構文とオプションを表示します。 |
/k[eep] | 生成されたソース ファイルとその他の一時ファイルをシリアル化アセンブリにコンパイルした後、元のファイルを削除しません。 このオプションを使用して、ツールが特定の型に対してシリアル化コードを生成するかどうかを指定できます。 |
/n[ologo] | Microsoft の著作権情報を表示しません。 |
/o[ut]:path | 生成されたアセンブリの保存先のディレクトリを指定します。 注: 生成されたアセンブリの名前は、入力アセンブリの名前と "xmlSerializers.dll" で構成されます。 |
/p[roxytypes] | XML Web サービス プロキシ型に対してのみシリアル化コードを生成します。 |
/r[eference]:assemblyfiles | XML シリアル化が必要な型によって参照されるアセンブリを指定します。 コンマで区切られた複数のアセンブリ ファイルを受け入れます。 |
/s[ilent] | 成功メッセージを表示しません。 |
/t[ype]:type | 指定された型に対してのみ、シリアル化コードを生成します。 |
/v[erbose] | デバッグに関する詳細出力を表示します。 XmlSerializer でシリアル化できない対象アセンブリの型を一覧表示します。 |
/? | このツールのコマンド構文とオプションを表示します。 |
解説
XML シリアライザー ジェネレーターを使用しない場合、XmlSerializer はアプリケーションを実行するたびに、各型に対してシリアル化コードとシリアル化アセンブリを生成します。 XML シリアル化起動のパフォーマンスを向上させるには、Sgen.exe ツールを使用して、あらかじめこれらのアセンブリを生成します。 生成したアセンブリは、アプリケーションで配置できます。
XML シリアライザー ジェネレーターは、サーバーとの通信に XML Web サービス プロキシを使用するクライアントのパフォーマンスも向上させますが、これは型が初めて読み込まれるとき、シリアル化プロセスによってパフォーマンスが低下しないためです。
生成されたアセンブリは、Web サービスのサーバー側では使用できません。 このツールは、Web サービス クライアントと手動シリアル化シナリオに対してのみ使用できます。
Note
この sgen
ツールには、init 専用セッターとの互換性がありません。 この機能が使用されているパブリック プロパティが対象アセンブリに含まれている場合、このツールは失敗します。
命名
シリアル化する型を含むアセンブリの名前が MyType.dll の場合、関連するシリアル化アセンブリの名前は MyType.XmlSerializers.dll となります。
例
次のコマンドは、Data.dll という名前のアセンブリに含まれるすべての型をシリアル化するために、Data.XmlSerializers.dll という名前のアセンブリを作成します。
sgen Data.dll
Data.XmlSerializers.dll アセンブリは、Data.dll の型をシリアル化および逆シリアル化する必要のあるコードから参照できます。
関連項目
.NET