net中序列化 与反序列化

net中序列化 与反序列化

ID:17892437

大小:45.50 KB

页数:3页

时间:2018-09-08

net中序列化 与反序列化_第1页
net中序列化 与反序列化_第2页
net中序列化 与反序列化_第3页
资源描述:

《net中序列化 与反序列化》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、.Net框架中提供了3中序列化的方式, 分别是:• Binary Serializer        二进制序列化• Soap Serializer          简单对象序列化• XML Serializer          xml序列化1. Binary Serializer   二进制序列化如果需要序列化这个类的对象,那么这个类必须要标记为是可序列化的。需要用到特性 [Serializable] (作用域是Class, Struct, Enum, Delegate)如果某些变量不需要序列化, 或者不能序列化可以使用[NonSerialized], (作用域是F

2、ield)需要注意, 如果类中使用了其它的类属性,如果希望它们能序列化,那么其它的类也必须是可序列化的, 如下面类DethDisease namespace SerializationDemo{    [Serializable]    public class Person    {        [NonSerialized]        private int _age;        public int Age        {            get            {                return _age;           

3、 }            set            {                _age = value;            }        }        public DethDisease Disease        {            get;            set;        }        public string Medicine        {            get;            set;        }        public Person()        {            

4、Age = 0;        }        public bool Live()        {            Age++;            if (Disease != null && !Disease.CanLive(Age, Medicine))                return false;            return true;        }    }}二进制序列化的代码, 主要是这个BinaryFormatter.1234IFormatter formatter = new BinaryFormatter(); St

5、ream stream = new FileStream("Person", FileMode.Create, FileAccess.Write, FileShare.None); formatter.Serialize(stream, newPerson);stream.Close();反序列化1234IFormatter formatter = new BinaryFormatter();Stream stream = new FileStream("Person", FileMode.Open, FileAccess.Read, FileShare.Read);ne

6、wPerson = (Person)formatter.Deserialize(stream);stream.Close(); 2. Soap Serializer基本和上面的一样,只是用到不同的IFormatter实现,SoapFormatter3. XML Serializer使用xml Serializer, 不需要使用特性[Serializable]使用xml Serializer, 有相关的一些其它特性来改变xml的输出结果。XmlRoot: 作用于类根元素, 控制根元素的输出XmlElement: 作用于类的属性或fieldXmlAttribute: 作为属性

7、输出,而不是节点XmlIgnore: 不输出XmlText: 必须是字符串类型, 一个类中只能有一个这个特性, 没有标签包裹,也不作为属性XmlArray: 作用于数组类型, 可以控制数组的输出这里是常用的序列化xml的核心方法 12345678910111213141516171819202122232425public static string XmlSerialize(T obj)     {         string xmlString = string.Empty;         XmlSerializ

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。