C#でXmlSerializerを使う方法!XMLシリアライズとデシリアライズの手順を解説
シリアライズ(直列化)とデシリアライズ(逆直列化)は、データの送受信を通じて他のアプリケーションと通信するための重要な仕組みです。C#のXmlSerializerクラスを使用すると、オブジェクトをXMLにエンコードする方法を細かく制御できます。
XMLシリアライズに必要な2つのクラス
XMLシリアライズを実行するには、次の2つのクラスが必要です。
- StreamWriterクラス … XMLファイルへの書き込みを担当します
- XmlSerializerクラス … オブジェクトのシリアライズを担当します
オブジェクトをXMLにシリアライズする手順
Serializeメソッドを呼び出し、引数としてStreamWriterとシリアライズ対象のオブジェクトを渡します。
string myPath = "new.xml"; XmlSerializer s = new XmlSerializer(settings.GetType()); StreamWriter streamWriter = new StreamWriter(myPath); s.Serialize(streamWriter, settings);
このコードを実行すると、「new.xml」という名前のXMLファイルが生成され、オブジェクトの内容がXML形式で保存されていることを確認できます。
XMLからオブジェクトへデシリアライズする手順
続いて、XMLファイルからオブジェクトを復元(デシリアライズ)する方法を見ていきましょう。まず、XmlSerializerのインスタンスを作成します。
MySettings mySettings = new MySettings(); string myPath = "new.xml"; XmlSerializer s = new XmlSerializer(typeof(MySettings));
次に、XMLファイルを読み込むためにStreamReaderクラスを使用します。
StreamReader streamReader = new StreamReader(myPath); mySettings = (MySettings)s.Deserialize(streamReader);
まとめ
XmlSerializerは、StreamWriterと組み合わせればオブジェクトを簡単にXMLファイルへ保存でき、StreamReaderと組み合わせればXMLから元のオブジェクトへ復元できます。設定ファイルの保存・読み込みなど、アプリケーション間のデータ交換のさまざまな場面で活用できるので、ぜひマスターしておきましょう。
-
Wi-Fi Directの使い方|Android・Samsung端末でファイル共有する方法を徹底解説
押さえておきたいポイントAndroid 9/8/7の場合:「設定」アプリを開き、「接続」>「Wi-Fi」>「Wi-Fi Direct」の順にタップし、接続したいデバイスを選択します。Samsung端末でファイルを送る場合:ファイルを長押しして「共有」>「Wi-Fi Direct」を選択。送信先のデバイスを選び、「共有」をタップします。使用しないときはWi-Fi Directをオフにすると省電力になります。ペアリング済みのすべてのデバイスとの接続を解除すると無効化できます。Android端末でWi-Fi Directを使ってファイルを共有するのは、Bluetoothの優れた代替手段です。Blue
-
YouTubeの使い方ガイド:匿名視聴からアカウント登録、動画投稿まで徹底解説
YouTubeには「見る」と「発信する」2つの楽しみ方があるYouTubeの利用方法は大きく分けて2つあります。ひとつは他の人が投稿した動画を視聴する「視聴者」としての使い方、もうひとつは自分の動画をアップロードする「クリエイター(投稿者)」としての使い方です。とはいえ、YouTubeユーザーの大多数は、サイトやスマホアプリを使って動画を視聴することを主な目的としています。アカウント登録なしで匿名のまま動画を視聴できる他のSNSと異なり、YouTubeではアカウントを作成しなくてもコンテンツの検索や動画の視聴が可能です。検索と視聴は、ログイン不要で匿名のまま楽しめるアクティビティです。一方、自