C#でListなオブジェクトをXMLにシリアライズする

C# コンピュータ
C#
ユーザークラスのList<T>をXMLにシリアライズするサンプルです。
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Xml.Serialization;

public class Pageinfo
{
    public string File {get; set;}
    public int X {get; set;}
    public int Y {get; set;}
    public int Width {get; set;}
    public int Height {get; set;}
}

class XmlSample
{
    static void Main()
    {
        List pages = new List();
        pages.Add(new Pageinfo
        {
            File = "264.png",
            X = 0,
            Y = 0,
            Width = 800,
            Height = 600,
        });
        pages.Add(new Pageinfo
        {
            File = "265.png",
            X = 0,
            Y = 0,
            Width = 800,
            Height = 600,
        });

        // xmlファイル
        const string xmlFile = @"D:\csharp\CvEditor\pages.xml";
        // シリアライズする
        var xmlSerializer1 = new XmlSerializer(typeof(List));
        
        using (var streamWriter = new StreamWriter(xmlFile, false, Encoding.UTF8))
        {
            xmlSerializer1.Serialize(streamWriter, pages);
            streamWriter.Flush();
        }

        // デシリアライズする
        var xmlSerializer2 = new XmlSerializer(typeof(List));
        List result;
        var xmlSettings = new System.Xml.XmlReaderSettings
        {
            CheckCharacters = false,
        };
        using (var streamReader = new StreamReader(xmlFile, Encoding.UTF8))
        using (var xmlReader = System.Xml.XmlReader.Create(streamReader, xmlSettings))
        {
            result = (List)xmlSerializer2.Deserialize(xmlReader);
        }

        // 結果を出力
        foreach(var page in result)
        {
            Console.WriteLine("{0}",page.File);
        }
    }
}

コメント