C# でオブジェクトを XML にシリアル化する
このチュートリアルでは、クラスオブジェクトを C# で XML ファイルまたは文字列にシリアル化する方法について説明します。
C# の XmlSerializer
クラスを使用してオブジェクトを XML にシリアル化する
シリアル化とは、クラスオブジェクトを XML またはバイナリ形式に変換することを意味します。XmlSerializer
クラスは、C# でクラスオブジェクトを XML に、またはその逆に変換します。XmlSerializer.Serialize()
メソッドは、クラスオブジェクトのすべてのパブリックフィールドとプロパティを XML 形式に変換します。XML ファイルまたは文字列にクラスを書き込む場合は、public
アクセス指定子を使用してクラスを定義する必要があります。次のコード例は、C# の XmlSerializer
クラスを使用してクラスオブジェクトを XML 文字列変数にシリアル化する方法を示しています。
using System;
using System.IO;
using System.Linq;
using System.Xml;
using System.Xml.Serialization;
namespace serialize_object {
public class Sample {
public string value { get; set; }
}
class Program {
static void Main(string[] args) {
Sample obj = new Sample();
obj.value = "this is some value";
string xml = "";
XmlSerializer serializer = new XmlSerializer(typeof(Sample));
using (var sww = new StringWriter()) {
using (XmlWriter writer = XmlWriter.Create(sww)) {
serializer.Serialize(writer, obj);
xml = sww.ToString(); // Your XML
}
}
Console.WriteLine(xml);
}
}
}
出力:
<?xml version="1.0" encoding="utf-16"?><Sample xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="https://www.w3.org/2001/XMLSchema"><value>this is some value</value></Sample>
上記のコードでは、C# の XmlSerializer.Serialize()
関数を使用して、クラス Sample
のオブジェクト obj
を XML 文字列変数 xml
にシリアル化しました。最初に、typeof(Sample)
パラメーターを渡すことにより、XmlSerializer
クラスのインスタンスを初期化しました。これにより、タイプ Sample
の XmlSerializer
クラスのインスタンスが作成されます。次に、データを文字列変数に書き込むための StringWriter
クラスのインスタンスを作成しました。次に、StringWriter
クラスのインスタンスに書き込むための XmlWriter
クラスのインスタンスを作成しました。次に、serializer.Serialize(writer, obj)
を使用してオブジェクトを StringWriter
クラスのインスタンスに書き込み、ToString()
関数を使用して結果を文字列変数 xml
に格納しました。
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn