オブジェクト リストへの C# XML 逆シリアル化
場合によっては、XML をオブジェクトのリストなどの構造化データ形式に逆シリアル化する必要がある場合があります。この記事では、この特定の逆シリアル化を実現するための可能性と必要な手順について説明します。
次の XML を List<User>
に変換する必要があるとします:
<code class="language-xml"><?xml version="1.0"?><user_list><user><id>1</id><name>Joe</name></user><user><id>2</id><name>John</name></user></user_list></code>
この変換を実装するには、XmlSerializer
クラスを使用できます。ただし、XML の構造に適合させるには、少し変更する必要があります。 List<User>
に直接逆シリアル化する代わりに、リストを含む中間クラスを使用します。
以下はラッパー クラスの実装例です:
<code class="language-csharp">[XmlRoot("user_list")] public class UserList { public UserList() { Items = new List<User>(); } [XmlElement("user")] public List<User> Items { get; set; } }</code>
UserList
クラスを使用すると、逆シリアル化プロセスが非常に簡単になります。
<code class="language-csharp">XmlSerializer ser = new XmlSerializer(typeof(UserList)); UserList list = new UserList(); list.Items.Add(new User { Id = 1, Name = "abc" }); list.Items.Add(new User { Id = 2, Name = "def" }); list.Items.Add(new User { Id = 3, Name = "ghi" }); ser.Serialize(Console.Out, list);</code>
この拡張リスト シリアル化は、XML を階層構造に逆シリアル化するための、よりクリーンでより一般的な方法を提供します。
以上がC# で XML をオブジェクトのリストに逆シリアル化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。