次の方法で共有


.NET Core で Microsoft XML シリアライザー ジェネレーターを使用する

このチュートリアルでは、C# アプリケーションで Microsoft XML シリアライザー ジェネレーターを使用する方法について説明します。 このチュートリアルでは、次の内容を学習します。

  • .NET コンソール アプリを作成する方法
  • Microsoft.XmlSerializer.Generator パッケージへの参照を追加する方法
  • MyApp.csproj を編集して依存関係を追加する方法
  • クラスと XmlSerializer を追加する方法
  • アプリケーションをビルドして実行する方法

.NET Framework の Xml シリアライザー ジェネレーター (sgen.exe) と同様に、 Microsoft.XmlSerializer.Generator NuGet パッケージ は、.NET Core/.NET 5 以降および .NET Standard プロジェクトと同等です。 アセンブリに含まれる型の XML シリアル化アセンブリが作成され、 XmlSerializerを使用してそれらの型のオブジェクトをシリアル化または逆シリアル化するときの XML シリアル化のスタートアップ パフォーマンスが向上します。

[前提条件]

このチュートリアルを完了するには:

ヒント

コード エディターをインストールする必要がありますか? Visual Studio をお試しください。

次の手順では、.NET Core コンソール アプリケーションで XML シリアライザー ジェネレーターを使用する方法を示します。

アプリを作成する

  1. コマンド プロンプトを開き、 MyApp という名前のフォルダーを作成します。 作成したフォルダーに移動し、次のコマンドを入力します。

    dotnet new console
    
  2. Microsoft.XmlSerializer.Generator パッケージへの参照を追加します。

    dotnet add package Microsoft.XmlSerializer.Generator -v 8.0.0
    

    このコマンドを実行すると、 MyApp.csproj プロジェクト ファイルに次の行が追加されます。

    <ItemGroup>
       <PackageReference Include="Microsoft.XmlSerializer.Generator" Version="8.0.0" />
    </ItemGroup>
    
  3. 次の ItemGroup セクションをプロジェクト ファイルに追加して、ツール参照を追加します。

    <ItemGroup>
       <DotNetCliToolReference Include="Microsoft.XmlSerializer.Generator" Version="8.0.0" />
    </ItemGroup>
    
  4. テキスト エディターで Program.cs を開きます。 Program.csMyClass という名前のクラスを追加します。

    public class MyClass
    {
       public int Value;
    }
    
  5. XmlSerializerMyClassのために作成します。 Program.cs ファイルに次の行を追加します。

    var serializer = new System.Xml.Serialization.XmlSerializer(typeof(MyClass));
    
  6. アプリケーションをビルドして実行します。 dotnet runを使用してアプリケーションを実行します。

    dotnet run
    

    アプリは、実行時に事前に生成されたシリアライザーを自動的に読み込んで使用します。

    ヒント

    dotnet rundotnet build を呼び出してビルド ターゲットがビルドされたことを確認してから、 dotnet <assembly.dll> を呼び出してターゲット アプリケーションを実行します。

重要

このチュートリアルで示す、アプリケーションを実行するためのコマンドと手順は、開発時にのみ使用されます。 アプリをデプロイする準備ができたら、.NET アプリのさまざまな デプロイ戦略dotnet publish コマンドを確認します。

すべてが成功すると、 MyApp.XmlSerializers.dll という名前のアセンブリが出力フォルダーに生成されます。

おめでとうございます! 今回の成果:

  • .NET コンソール アプリを作成しました。
  • Microsoft.XmlSerializer.Generator パッケージへの参照を追加しました。
  • 依存関係を追加するために MyApp.csproj を編集しました。
  • クラスと XmlSerializer を追加しました。
  • アプリケーションをビルドして実行します。

XML シリアル化アセンブリをさらにカスタマイズする (省略可能)

次の XML を MyApp.csproj に追加して、アセンブリの生成をさらにカスタマイズします。

<PropertyGroup>
    <SGenReferences>C:\myfolder\abc.dll;C:\myfolder\def.dll</SGenReferences>
    <SGenTypes>MyApp.MyClass;MyApp.MyClass1</SGenTypes>
    <SGenProxyTypes>false</SGenProxyTypes>
    <SGenVerbose>true</SGenVerbose>
    <SGenKeyFile>mykey.snk</SGenKeyFile>
    <SGenDelaySign>true</SGenDelaySign>
</PropertyGroup>