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 にシリアル化するコンソール アプリケーションを作成するには、次の手順に従います。
Visual C# で、新しいコンソール アプリケーション プロジェクトを作成します。
[ プロジェクト ] メニューの [ クラスの追加 ] を選択して、新しいクラスをプロジェクトに追加します。
[ 新しい項目の追加 ] ダイアログ ボックスで、クラスの名前を clsPerson に変更します。
[追加] を選択します。 新しいクラスが作成されます。
パブリック クラス
clsPerson
ステートメントの後に次のコードを追加します。public string FirstName; public string MI; public string LastName;
Visual Studio で Program.cs のコード ウィンドウに切り替えます。
メソッドで
void Main
、 クラスのclsPerson
インスタンスを宣言して作成します。clsPerson p = new clsPerson();
オブジェクトのプロパティを
clsPerson
設定します。p.FirstName = "Jeff"; p.MI = "A"; p.LastName = "Price";
Xml.Serialization
名前空間には、オブジェクトを XML にXmlSerializer
シリアル化するクラスが含まれています。 のXmlSerializer
インスタンスを作成するときは、シリアル化するクラスの型をコンストラクターに渡します。System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(p.GetType());
メソッドは
Serialize
、オブジェクトを XML にシリアル化するために使用されます。 シリアル化はオーバーロードされ、またはXMLWriter
オブジェクトに出力をTextWriter
Stream
送信できます。 この例では、出力をコンソールに送信します。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
、浅いシリアル化のみを実行します。 オブジェクトまたは子オブジェクトのプライベート変数もシリアル化する場合は、ディープ シリアル化を使用する必要があります。