加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

XML序列化

发布时间:2020-12-16 00:21:29 所属栏目:百科 来源:网络整理
导读:今天在项目中接触了系列化这个技术点,以前只是听说过这个词,但是还真不知道是干嘛用的,今天就简单的了解一下。 在谈XML序列化之前,我们先来了解一下序列化。序列化是将对象转换成易于传输的形式的过程。例如,可以序列化对象,并使用HTTP通过Internet在

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

在谈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序列化做进一步的了解,现在就简单理解到这里。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读