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

Microsoft Visual Basic .NET 版のこの資料には、次を参照してください。
315703
この資料は、次の Microsoft.NET Framework クラス ライブラリの名前空間を参照します。
  • System.Xml
  • System.Xml.Serialization

この作業では

概要

この資料では、Visual C# を使用してオブジェクトを XML にシリアル化する方法について説明します。このメソッドは、オブジェクトの状態を永続化するのに便利です。このメソッドは、新しいオブジェクトに XML を逆シリアル化でオブジェクトのクローンを作成するのに便利ですもあります。

先頭に戻る

要件

推奨されるハードウェア、ソフトウェア、ネットワーク インフラストラクチャ、および必要なサービス パックは、次のとおりです。
  • Microsoft Visual Studio
この資料は次のトピックに精通している事を前提としています。
  • XML に関する一般的な知識
  • 一般的な知識は Visual C# で
先頭に戻る

XML シリアル化

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

、オブジェクトを作成し、その状態を XML にシリアル化するコンソール アプリケーションを作成するのには次の手順に従います。
  1. Visual C# で、新しいコンソール アプリケーション プロジェクトを作成します。
  2. [プロジェクト] メニューで、プロジェクトに新しいクラスを追加するクラスの追加をクリックします。
  3. 新しい項目の追加] ダイアログ ボックスで、クラスの名前をclsPersonに変更します。
  4. [追加] をクリックします。新しいクラスが作成されます。

    注: Visual Studio .NET 2003 では、[開く] をクリックします。
  5. パブリック クラスclsPersonステートメントの後に次のコードを追加します。
     public   string FirstName; public   string MI;
    public string LastName;

  6. Program.cs の Visual Studio または Visual Studio .NET 2003 で Class1.cs のコード ウィンドウに切り替えます。。
  7. Void Mainメソッドで宣言し、 clsPersonクラスのインスタンスを作成します。
    clsPerson p = new clsPerson();
  8. ClsPersonオブジェクトのプロパティを設定します。
    p.FirstName = "Jeff";p.MI = "A";
    p.LastName = "Price";
  9. Xml.Serialization名前空間には、オブジェクトを XML にシリアル化するXmlSerializerクラスが含まれています。XmlSerializerのインスタンスを作成するときは、そのコンス トラクターにシリアル化するクラスの型を渡します。
    System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(p.GetType());
  10. Serializeメソッドを使用して、オブジェクトを XML にシリアル化します。シリアル化は、オーバー ロードし、 TextWriterストリーム、または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オブジェクトでは、緩斜面のシリアル化のみを実行します。オブジェクトまたは子オブジェクトのプライベート変数をシリアル化する場合深いシリアル化を使用する必要があります。

先頭に戻る

関連情報

詳細については、次の Microsoft Developer Network (MSDN) Web サイトを参照してください。先頭に戻る
プロパティ

文書番号:815813 - 最終更新日: 2017/02/01 - リビジョン: 1

Microsoft Visual C# 2008 Express Edition, Microsoft Visual C# .NET 2003 Standard Edition, Microsoft Visual C# .NET 2002 Standard Edition, Microsoft Visual C# 2005 Express Edition

フィードバック