微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

XML序列化

今天在项目中接触了系列化这个技术点,以前只是听说过这个词,但是还真不知道是干嘛用的,今天就简单的了解一下。

在谈XML序列化之前,我们先来了解一下序列化。序列化是将对象转换成易于传输的形式的过程。例如,可以序列化对象,并使用HTTP通过Internet在客户端和服务器之间进行传输。序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据。这就是序列化的意义所在。

我们可以把对象序列化为不同的格式,比如说,Json序列化、XML序列化、二进制序列化、SOAP序列化等,以上这些不同的格式也都是为了适应具体的业务需求。

下面我们就来说一下XML序列化:

<span style="font-family:Simsun;font-size:14px;">namespace 学习测试
{
    class Program
    {
        static void Main(string[] args)
        {
            Person p = new Person(1,"刘备",176);
            string xmlString = "";
            //xml序列化开始
            using (MemoryStream ms = new MemoryStream())
            {
                Type t = p.GetType();
                XmlSerializer xml = new XmlSerializer(t);
                xml.Serialize(ms,p);
                byte[] arr = ms.ToArray();
                xmlString = Encoding.UTF8.GetString(arr,arr.Length);
                ms.Close();
            }
            Console.WriteLine(xmlString);

            Console.ReadKey();
        }
    }

    public class Person
    {
        //必须定义一个无参数构造函数,否则无法序列化(当然完全不写构造函数也是可以序列化的,因为有个认的无参构造函数)
        public Person() { }

        public Person(int id,string name,int age)
        {
            Id = id;
            Name = name;
            //Age = age;
        }
        public int Id { get; set; }
        public string Name { get; set; }
        //私有字段
        private int Age { get; set; }
        //只读属性
        private int height;
        public int Height { get { return height; } }
    }
}</span>
上面为引用别人的例子,自己做了一下。自己后面还会对xml序列化做进一步的了解,现在就简单理解到这里。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。