吴佳鑫的个人专栏

当日事当日毕,没有任何借口

导航

上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 18 下一页

2012年2月19日

创建可以销毁的对象代码段

摘要: 创建可以销毁的对象。可以用using包含起来的类Public class MyClass:IDisposable{private bool IsDisposed=false;public void Dispose(){ Dispose(true); GC.SupressFinalize(this);}protected void Dispose(bool Diposing){ if(!IsDisposed) { if(Disposing) { //Clean Up managed resources } //Clean up unmanaged resources}IsDisposed=tru 阅读全文

posted @ 2012-02-19 20:33 _eagle 阅读(265) 评论(0) 推荐(0) 编辑

2012年2月15日

对象序列化(七):应用实例->asp.net ViewState

摘要: ViewState的使用比较简单,一两句话就可以了。赋值:ViewState[key] = value;取值:value = ViewState[key];最主要的作用就是可以在当前页面保存值,ASP.NET的页面状态维护就是使用ViewState来实现的,基本上每一个ASPX页面都可以看到如下类似的html代码:<inputtype="hidden"name="__VIEWSTATE"id="__VIEWSTATE"value="/wEPDwUKMTkwNjc4NTIwMWRkyv4ncofW5vaWXdXRtXfX 阅读全文

posted @ 2012-02-15 00:29 _eagle 阅读(416) 评论(0) 推荐(0) 编辑

对象序列化(六):应用实例->WPF对象的XAML序列化

摘要: WPF使用XAML来描述用户界面,每个XAML元素往往对应着相应的WPF对象,元素的属性对应着对象的属性。由于XAML元素与WPF对象之前存在着这种对应关系,其实可以将XAML代码看成是WPF对象“序列化”后的结果。WPF提供了XamlWriter 和 XamlReader 两个类实现WPF对象的XAML序列化和反序列化。示例项目:展示了一个绘图板,用户用鼠标点击此绘图板,程序将以随机颜色和大小绘制一个矩形,点击“保存”按钮,当前图形将被保存到磁盘上一个名为“PicData.dat” 的文件中,点击“重建”按钮,将恢复上次保存的图形。前台的XAML代码:<Window x:Class=& 阅读全文

posted @ 2012-02-15 00:07 _eagle 阅读(2782) 评论(1) 推荐(2) 编辑

2012年2月14日

对象序列化(六):应用实例->程序退出时保存状态

摘要: 应用序列化技术的一个典型开发场景就是保存应用程序的当前状态,它允许用户暂时中断当前的工作,关闭程序退出,下次重新启动程序时自动恢复上次的工作状态。示例:保存窗体颜色和位置的对象:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Drawing;namespace SaveFormStatus{ [Serializable] public class FormStatus { public Color BackgroundCo... 阅读全文

posted @ 2012-02-14 23:54 _eagle 阅读(440) 评论(0) 推荐(0) 编辑

对象序列化(五):应用实例->大批量复制对象

摘要: 本日记介绍序列化技术在实际开发中的用武之地。在了解了对象序列化与反序列化的方法之后,自然想到可以使用它来实现对象复制。当序列化技术用于对象复制时,我们不将其序列化到文件中,而是将其序列化到内存流中,通过反序列化即可“批量克隆”大量的对象。示例:using System;using System.Collections.Generic;using System.Text;using System.Runtime.Serialization.Formatters.Binary;using System.Runtime.Serialization;using System.IO;namespace 阅读全文

posted @ 2012-02-14 23:50 _eagle 阅读(697) 评论(0) 推荐(0) 编辑

对象序列化(四):多对象序列化

摘要: 前几个日记都是介绍单个对象序列化的,其实,可以在序列化过程中向流连续写入多个对象。继续前面的示例,如果是多个学生对象//学生对象private List<CollegeStudent> stus = new List<CollegeStudent>();需要保存数据时,将集合中的对象序列化到文件中://将学生清单序列化到文件中 private void SerializeStudentList(String FileName, List<CollegeStudent> stus) { using (FileStream writer = new FileSt 阅读全文

posted @ 2012-02-14 23:36 _eagle 阅读(516) 评论(0) 推荐(0) 编辑

对象序列化(三):控制序列化过程

摘要: 接着上一节的内容,有时候我们在对象中,并不是所有的字段需要序列化。示例:以下是这个窗体需要用到的实体类using System;using System.Collections.Generic;using System.Text;using System.Runtime.Serialization;using System.Collections;namespace MutliObjectSerialization2{ [Serializable] class CollegeStudent:IDeserializationCallback { public St... 阅读全文

posted @ 2012-02-14 23:18 _eagle 阅读(456) 评论(0) 推荐(0) 编辑

对象序列化(二):对象的序列化与反序列化

摘要: .NET框架提供了三种序列化的方式:1、是使用BinaryFormatter进行序列化;2、使用SoapFormatter进行序列化;3、使用XmlSerializer进行序列化。第一种方式提供了一个简单的二进制数据流以及某些附加的类型信息,而第二种将数据流格式化为XML存储;第三种其实和第二种差不多也是XML的格式存储,只不过比第二种的XML格式要简化很多(去掉了SOAP特有的额外信息)。简单的说,第一种是将对象的数据看成是二进制的数据而直接写入流中,称为“二进制序列化”,第二种和第三种是将对象数据用XML方式表示之后再经纯文本的方式写入流中,称为“XML序列化”。.net提供了两种“数据格 阅读全文

posted @ 2012-02-14 22:36 _eagle 阅读(788) 评论(0) 推荐(0) 编辑

2012年2月12日

对象序列化(一):序列化概念与流

摘要: 对象的序列化主要解决的是对象状态的保存问题。这里所说的“对象状态”,其实就是指某一时刻对象所拥有的各个字段值的集合。序列化最主要的作用有:1、在进程下次启动时读取上次保存的对象的信息 2、在不同的AppDomain或进程之间传递数据 3、在分布式应用系统中传递数据......一、对象序列化的概念我们的程序运行在内存空间中,因此程序一关闭,这些对象也都会被CLR的垃圾回收机制销毁。程序第二次程序时,又重头来过。如果希望第二次运行程序时能“重现"第一次运行时的“场景”,即恢复第一次运行时各个对象的状态,应用程序就必须采用某种方法将对象各个字段的值保存到磁盘文件中,这样在需要时可以从磁盘文 阅读全文

posted @ 2012-02-12 23:42 _eagle 阅读(1966) 评论(0) 推荐(0) 编辑

对象的复制:浅复制与深复制和ICloneable接口

摘要: 所谓的“对象的复制” 即生成一个与指定对象“一模一样”的“同胞兄弟”。对于对象的复制,有浅复制与深复制两种情况。1、 浅复制:是指当对象的字段值被复制时,字段引用的对象不会被复制。例如,如果一个对象有一个指向字符串的字段,并且我们对该对象做了一个浅复制,那麽两个对象将引用同一个字符串。2、 深复制:是对对象事例中字段引用的对象也进行复制的一种方式。 例如,如果一个对象有一个指向字符串的字段,并且对该对象做了一个深复制的话.我门将创建一个新的对象和一个新的字符串.新对象将指向新字符串。3、.NET中默认的对象复制方式为浅复制,我们可以通过两种方式实现深复制。 A、类实现Icloneable接口。 阅读全文

posted @ 2012-02-12 23:12 _eagle 阅读(673) 评论(0) 推荐(0) 编辑

上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 18 下一页