今天在项目中接触了系列化这个技术点,以前只是听说过这个词,但是还真不知道是干嘛用的,今天就简单的了解一下。
在谈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 举报,一经查实,本站将立刻删除。