XML シリアライザー ジェネレーター ツール (Sgen.exe)

XML シリアライザー ジェネレーターは、指定したアセンブリ内の型に対して XML シリアル化アセンブリを作成します。 シリアル化アセンブリは、指定した型のオブジェクトをシリアル化または逆シリアル化するときに、 XmlSerializer の起動パフォーマンスを向上させます。

注

このツールは、.NET Framework アセンブリに固有です。 .NET (Core) アセンブリの XML シリアライザーを生成するには、「 Microsoft .NET Core での XML シリアライザー ジェネレーターの使用を参照してください。

構文

コマンド ラインからツールを実行します。

sgen [options]

ヒント

.NET Framework ツールが正常に機能するには、 Visual Studio 開発者コマンド プロンプトまたは Visual Studio Developer PowerShell を使用するか、 Path、 Include、および Lib 環境変数を正しく設定する必要があります。 これらの環境変数を設定するには、< ディレクトリにあるSDKVars.batを実行します。

パラメーター

選択肢 説明
/a[ssembly]:filename ファイル名で指定されたアセンブリまたは実行可能ファイルに含まれるすべての型のシリアル化コードを生成します。 指定できるファイル名は 1 つだけです。 この引数を繰り返す場合は、最後のファイル名が使用されます。
/c[ompiler]:options C# コンパイラに渡すオプションを指定します。 コンパイラに渡されるすべての csc.exe オプションがサポートされます。 これは、アセンブリに署名する必要があることを指定し、キー ファイルを指定するために使用できます。
/d[デバッグ] デバッガーで使用できるイメージを生成します。
/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 サービス クライアントと手動のシリアル化シナリオ専用です。

注

sgen ツールは init のみのセッターと互換性がありません。 この機能を使用するパブリック プロパティがターゲット アセンブリに含まれている場合、ツールは失敗します。

名前付け

シリアル化する型を含むアセンブリの名前が MyType.dllの場合、関連付けられているシリアル化アセンブリには MyType.XmlSerializers.dllという名前が付けられます。

例示

次のコマンドは、Data.dllという名前 の アセンブリに含まれるすべての型をシリアル化するために 、Data.XmlSerializers.dllという名前のアセンブリを作成します。

sgen Data.dll

Data.XmlSerializers.dll アセンブリは、Data.dllの型をシリアル化および逆シリアル化する必要があるコードから参照できます。

こちらも参照ください