.NET中序列化(二)

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 20:02 点击:

----------------------------------------------------------------------------------------------------------------------------

上节说到序列化和反序列化类中的值成员,我们也知道,类中的成员不当当只是值成员还有引用类型,现在我们就介如何序列化引用类型、不可序列、序列化成SOAP格式的文件


序列化引用类型

序列化类默认的情况下是要求他的所有的成员都是要可序列化的(除事件、委托、显式定义不可序列化)

现在我对之前的例子进行改造,例子如下:

    [Serializable]    public class MyClass    {        public string Name        {            get;            set;        }        public int Age        {            get;            set;        }        public Work MyWork        {            get;            set;        }    }    [Serializable]    public class Work    {        public string Name        {            set;            get;        }        public string Address        {            set;            get;        }    }其实很简单的,就是把MyClass类中有的类成员都加上为[Serializable]属性即可,.NET会去MyClass中遍历所有的成员,智能的跳过类的循环引用。如果MyClass中的Work类型不加[Serializable]属性,那就是说Work不可序列化,那.NET就会报出错误。


不可序列化成员

如果你在MyClass中有个SqlConnection类型成员,大家都知道SqlConnection中管理的是数据库的连接,不好被序列化,所以我们在设计的时候不能把SqlConnection序列化了,我们要在SqlConnection的成员中把它加上 [NonSerialized]属性告诉.NET这个类不要被序列化,当反序列化的时候SqlConnection就为null,例子如下:

    [Serializable]    public class MyClass    {        public string Name        {            get;            set;        }        public int Age        {            get;            set;        }        [NonSerialized]        Work myWork;        public Work MyWork        {            get            {                return myWork;            }            set            {      &n

    相关新闻>>

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • 浅析.NET下XML数据访问新机制
    • asp.net 面试+笔试题目第1/2页
    • C# 邮件地址是否合法的验证
    • C#高级编程:数据库连接[1]
    • asp.net 设置GridView的选中行的实现代码
    • 经典C++程序1
    • IIS 自动回收导致后台定时器失效的问题解决
    • ASP.NET GridView列表代码示例
    • 微软ASP.NET站点部署指南(3):使用Web.Config文件的Transforma
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1