文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>.Net下的XML序列化(一)

.Net下的XML序列化(一)

时间:2011-01-15  来源:zhdonghu

    [Serializable]
    public class Address
    {
        public Address(){}


        public string Street
        {
            get { return street; }
            set { street = value; }
        }private string street;

        public string City
        {
            get { return city; }
            set { city = value; }
        }private string city;

        public string State
        {
            get { return state; }
            set { state = value; }
        }private string state;
    }


Customer类:

    [Serializable]
    public class Customer
    {
        public Customer(){}

        public string Name
        {
            get { return name; }
            set { name = value; }
        }private string name;

        public Address Address
        {
            get { return address; }
            set { address = value; }
        }private Address address;
    }


必须在将要序列化的类上加入特性[Serializable]

生成测试数据:

        public static Customer GetGustomer()
        {
            Customer customer = new Customer();
            Address address = new Address();
            address.City = "北京";
            address.State = "丰台";
            address.Street = "马家堡西里";
            
            customer.Address = address;
            customer.Name = "BillChen";

            return customer;
        }


进行序列化操作。

        [STAThread]
        static void Main(string[] args)
        {
            Customer customer = Customers.GetGustomer();

            SerializerCustomer1(customer);
            SerializerCustomer2(customer);
            SerializerCustomer3(customer);

            Console.ReadLine();
        }

        private static void SerializerCustomer1(Customer customer)
        {
            XmlSerializer ser = new XmlSerializer(typeof(Customer));
            FileStream stream = new FileStream("test.xml", FileMode.OpenOrCreate);

            ser.Serialize( stream, customer );

            stream.Close();
        }

        private static void SerializerCustomer2(Customer customer)
        {
            XmlSerializer ser = new XmlSerializer(typeof(Customer));
            
            MemoryStream stream = new MemoryStream(100);
            ser.Serialize( stream, customer );

            stream.Position = 0;
            using(StreamReader reader = new StreamReader(stream, Encoding.UTF8))
            {

                Console.Write(reader.ReadToEnd());


            }
        }

        private static void SerializerCustomer3(Customer customer)
        {
            XmlSerializer ser = new XmlSerializer(typeof(Customer));
            
            MemoryStream stream = new MemoryStream(100);
            XmlTextWriter writer = new XmlTextWriter(stream, Encoding.UTF8);
            writer.Formatting = Formatting.Indented;//缩进
            ser.Serialize( writer, customer );

            stream.Position = 0;
            using(StreamReader reader = new StreamReader(stream, Encoding.UTF8))
            {
                string line;
                while((line = reader.ReadLine()) != null)
                {
                    Console.WriteLine(line);
                }
            }
            writer.Close();
        }


以上是序列化指定的类,及读取序列化后的XML内容的几种方式。

排行榜 更多 +
后室双重现实游戏下载

后室双重现实游戏下载

冒险解谜 下载
魔音少女模拟器下载最新版

魔音少女模拟器下载最新版

模拟经营 下载
雷曼大冒险官方版下载

雷曼大冒险官方版下载

冒险解谜 下载