Visual C# を使用してオブジェクトを XML にシリアル化する

この記事では、Visual C# を使用してオブジェクトを拡張マークアップ言語 (XML) にシリアル化する方法について説明します。

元の製品バージョン:   Visual Studio
元の KB 番号:   815813

概要

この記事で説明するメソッドは、オブジェクトの状態を保持するために役立ちます。 このメソッドは、XML を新しいオブジェクトに逆シリアル化してオブジェクトを複製する場合にも役立ちます。

この記事では、次の Microsoft .NET Framework クラス ライブラリ名前空間について説明します。

  • System.Xml
  • System.Xml.Serialization

要件

この記事では、次のトピックについて理解していることを前提としています。

  • Visual Studio
  • XML に関する一般的な知識
  • Visual C に関する一般的な知識#

XML シリアル化

シリアル化は、オブジェクトの状態を取得し、何らかの方法で永続化するプロセスです。 .NET Frameworkには、任意のオブジェクトを XML にシリアル化できる強力なオブジェクトが含まれています。 名前空間は System.Xml.Serialization 、この機能を提供します。

次の手順に従って、オブジェクトを作成し、その状態を XML にシリアル化するコンソール アプリケーションを作成します。

  1. Visual C# で、新しいコンソール アプリケーション プロジェクトを作成します。

  2. Project メニューの [クラスの追加] を選択して、新しいクラスをプロジェクトに追加します。

  3. [ 新しい項目の追加 ] ダイアログ ボックスで、クラスの名前を clsPerson に変更します。

  4. [追加] を選択します。 新しいクラスが作成されます。

  5. パブリック クラス clsPerson ステートメントの後に次のコードを追加します。

    public string FirstName;
    public string MI;
    public string LastName;
    
  6. Visual Studioの Program.cs のコード ウィンドウに切り替えます。

  7. メソッドで void Main 、クラスの clsPerson インスタンスを宣言して作成します。

    clsPerson p = new clsPerson();
    
  8. オブジェクトのプロパティを clsPerson 設定します。

    p.FirstName = "Jeff";
    p.MI = "A";
    p.LastName = "Price";
    
  9. Xml.Serialization名前空間には、オブジェクトを XmlSerializer XML にシリアル化するクラスが含まれています。 インスタンス XmlSerializerを作成するときは、シリアル化するクラスの型をコンストラクターに渡します。

    System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(p.GetType());
    
  10. この Serialize メソッドは、オブジェクトを XML にシリアル化するために使用されます。 Serialize はオーバーロードされ、出力を TextWriterStreamまたは XMLWriter オブジェクトに送信できます。 この例では、出力をコンソールに送信します。

    x.Serialize(Console.Out,p);
    Console.WriteLine();
    Console.ReadLine();
    

完全なコード一覧

using System;

public class clsPerson
{
    public  string FirstName;
    public  string MI;
    public  string LastName;
}

class class1
{
    static void Main(string[] args)
    {
        clsPerson p=new clsPerson();
        p.FirstName = "Jeff";
        p.MI = "A";
        p.LastName = "Price";
        System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(p.GetType());
        x.Serialize(Console.Out, p);
        Console.WriteLine();
        Console.ReadLine();
    }
}

検証

プロジェクトが動作することを確認するには、Ctrl キーを押しながら F5 キーを押してプロジェクトを実行します。 clsPersonオブジェクトが作成され、入力した値が設定されます。 この状態は XML にシリアル化されます。 コンソール ウィンドウには、次のコードが表示されます。

<?xml version="1.0" encoding="IBM437"?>
<clsPerson xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <FirstName>Jeff</FirstName>
    <MI>A</MI>
    <LastName>Price</LastName>
</clsPerson>

トラブルシューティング

オブジェクトは Xml.Serialization.XmlSerializer 、浅いシリアル化のみを実行します。 オブジェクトまたは子オブジェクトのプライベート変数もシリアル化する場合は、詳細なシリアル化を使用する必要があります。