.NET序列化与反序列化
摘要:一、什么序列化和反序列化序列化通俗地讲就是将一个对象转换成一个字节流的过程,这样就可以轻松保存在磁盘文件或数据库中。反序列化是序列化的逆过程,就是将一个字节流转换回原来的对象的过程。然而为什么需要序列化和反序列化这样的机制呢?这个问题也就涉及到序列化和反序列化的用途了,对于序列化的主要用途有:将应用程序的状态保存在一个磁盘文件或数据库中,并在应用程序下次运行时恢复状态。例如, Asp.net 中利用序列化和反序列化来保存和恢复会话状态。一组对象可以轻松复制到Windows 窗体的剪贴板中,再粘贴回同一个或者另一个应用程序。将对象按值从一个应用程序域中发送到另一个程序域并且如果把对象序列化成内存
阅读全文
posted @
2012-07-11 10:53
SplendidMe
阅读(322)
推荐(0)
C#中的集合--Collection
摘要:集合,表示可以通过遍历每个元素来访问的一组对象(特别是可使用foreach循环访问)一个集合包括多个元素,即有一个集合类对象和N个元素对象---------------------------因为任何集合类都实现了IEnumerable接口,所以任何集合类对象都有一个GetEnumerator()方法,该方法可以返回一个实现了IEnumerator接口的对象,这个返回的IEnumerator对象既不是集合类对象,也不是集合的元素类对象,它是一个独立的类对象。通过这个对象,可以遍历访问集合类对象中的每一个元素对象如果集合类是用户自定义的集合类,则用户必须实现它的GetEnumerator()方法
阅读全文
posted @
2012-01-05 16:23
SplendidMe
阅读(3789)
推荐(0)
委托的基础
摘要:委托和类一样,是一种用户自定义的类型。类表示的是数据的集合,而委托保存的是一个或多个方法。1、申明委托类型delegate void MyDel(int x)上面代码申明了MyDel类型的委托,指明了这种类型的委托只会接受不返回值并且只有单个int参数的方法。2、创建委托对象委托是引用类型,因此有引用和对象。在委托类型申明之后,我们可以申明变量并创建类型的对象。View Code 1 class del 2 { 3 public del() 4 { 5 MyDel delVar = new MyDel(b.GetB);//实例...
阅读全文
posted @
2012-01-05 16:09
SplendidMe
override 与new 重写父类虚方法 (new与virtual共存)
摘要:1.抽象类方法和虚方法都可以重写,但是我们专业的说:我们把抽象方法“实现”了,我们把 虚方法 “重写”了2.抽象类没有实例,所以抽象方法也不能被直接调用(没有方法体)并且可以实现,抽象类可以写虚方法并且可以重写3.虚方法可以再非抽象类与 抽象类内存在,虚方法在非抽象类里存在并且可以被实例调用4.override 与重载是2个概念,重写与重载 在字面上就不同5.override 在派生类重写父类方法的时候,凡是调用这个方法,我不管是直接调用这个方法,还是通过方法调用方法,他都是调用的重写的方法。6.new 注意:条件 当派生类与父类的方法名 一样的时候存在,不然会报错(你用new 一个父类不存在
阅读全文
posted @
2011-12-28 09:24
SplendidMe
阅读(543)
推荐(0)
C# 委托知识总结
摘要:1.什么是委托,为什么要使用委托在程序过程中,当程序正在处理某个事件的时候,我需要另外的程序代码去辅助处理一些事情,于是委托另一个程序模块去处理,而委托就可以达到这种目的,我可以利用委托通知另外的程序模块,该去调用哪个函数方法。委托其实就起到了这样一个作用,将函数签名传递到了另一个函数中。或许这样讲还是有些模糊,看看后面的具体实例2.委托的定义delegate int Add(int num1,int num2);delegate void ConvertNum(string result);上面是定义两个委托的例子,其实很简单。声明一个委托使用delegate关键字,上面分别是定义的带返回值
阅读全文
posted @
2011-10-21 17:19
SplendidMe
阅读(369)
推荐(0)
C#跨线程调用
摘要:跨线程调用窗体控件用户不喜欢反应慢的程序。在执行耗时较长的操作时,使用多线程是明智之举,它可以提高程序 UI 的响应速度,使得一切运行显得更为快速。在 Windows 中进行多线程编程曾经是 C++ 开发人员的专属特权,但是现在,可以使用所有兼容 Microsoft .NET 的语言来编写。不过Windows 窗体体系结构对线程使用制定了严格的规则。如果只是编写单线程应用程序,则没必要知道这些规则,这是因为单线程的代码不可能违反这些规则。然而,一旦采用多线程,就需要理解 Windows 窗体中最重要的一条线程规则:除了极少数的例外情况,否则都不要在它的创建线程以外的线程中使用控件的任何成员。本
阅读全文
posted @
2011-10-16 09:21
SplendidMe
阅读(9410)
推荐(0)
GridView 动态添加模板列并绑定数据 实现从外部直接传入控件 和 绑定字段参数
摘要:GridView 动态 添加 模板列 并 绑定数据 实现从外部直接传入控件 和 绑定字段参数public class GridViewTemplate : ITemplate { #region 参数 private DataControlRowType templateType; //区分列的类型 private string headName; //表头名称 private List<Control> controlList; //控件列表,支持同一列添加多个控...
阅读全文
posted @
2011-10-05 17:54
SplendidMe
阅读(657)
推荐(0)
C#数据导出Excel详细介绍
摘要:概要:excel导出在C#代码中应用己经很广泛了,我这里就做些总结,供自己和读者学习用。Excel知识点。 一、添加引用和命名空间 添加Microsoft.Office.Interop.Excel引用,它的默认路径是C:\Program Files\Microsoft Visual Studio 9.0\Visual Studio Tools for Office\PIA\Office12\Microsoft.Office.Interop.Excel.dll 代码中添加引用using Microsoft.Office.Interop.Excel; 二、Excel类的简单介绍 此命名空间下关于E
阅读全文
posted @
2011-10-05 17:36
SplendidMe
阅读(271)
推荐(0)
c#中使用lock的是与非
摘要:从“最简单”的单例模式说起publicclassSingleton{privatestaticSingletoninstance=null;privatestaticreadonlyobjectsyncRoot=newobject();privateSingleton(){}publicstaticSingletonGetInstance(){if(instance==null){lock(syncRoot){if(instance==null){instance=newSingleton();}}}returninstance;}}lock 确保当一个线程位于代码的临界区时,另一个线程不进入
阅读全文
posted @
2011-10-04 11:17
SplendidMe
阅读(357)
推荐(0)
LINQ学习之旅——第二站"LTQ"之ORM
摘要:随着把Linq To Object中的所有标准查询操作符讲解完,对Linq To Object的介绍将告一段落,虽然觉得内容不少,但理解起来应该不复杂。接下来进入学习之旅的第二站"LTQ",即Linq ToSQL,用于操作关系型数据库中的数据,基于关系型数据库中存在的关系数据模型建立与之对应的对象关系模型(Object Relation Model)。简单来讲就是Linq To SQL可以使用对象操作的方式来操作关系型数据库中的数据。而作为Linq To SQL的开篇内容,我想对ORM框架做个简单地介绍,以及重点介绍一下Linq To SQL这个ORM框架中的几种对象——关
阅读全文
posted @
2011-09-14 08:54
SplendidMe
阅读(280)
推荐(0)
CLR Via C# 知识总结
摘要:相信很多有过面试经历的开发人员都在面试的时候被问及到.net比较底层的东西,如程序在底层是怎么运行的?笔者就遇到过面试官问反射的机制是什么?当时确实答的一塌糊涂,但是有幸还是找到了一份不错的工作。在工作中猛然觉醒,是时候(有一定的开发基础)有必要了解一些.net运行的机制了,在买了一本CLR Via C#的书并在细细品味了第一章之后,决定把所学到的东西与大家进行分享,虽然之前都知道的知识,但是还是让我学到了很多的东西。可能总结的过程中还是有些不对的地方,希望各位看官能指出,并提出,我将尽快改正。谢谢!(目前只总结第一章前半部分,后半部分文档还未整理出来,望大家海涵) 言归正传,先从CLR是什.
阅读全文
posted @
2011-09-14 08:33
SplendidMe
阅读(540)
推荐(0)
HttpHelpers类普通GET和POST方式,带Cookie和带证书验证模式
摘要:/// <summary> /// 类说明:HttpHelps类,用来实现Http访问,Post或者Get方式的,直接访问,带Cookie的,带证书的等方式 /// 编码日期:2011-09-13 /// </summary>using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Text; using System.Net; using System.IO; using System.Security.Cryptography.X
阅读全文
posted @
2011-09-14 08:28
SplendidMe
阅读(897)
推荐(0)
Remoting基础
摘要:一、Remoting基础什么是Remoting,简而言之,我们可以将其看作是一种分布式处理方式。从微软的产品角度来看,可以说Remoting就是DCOM的一种升级,它改善了很多功能,并极好的融合到.Net平台下。Microsoft® .NET Remoting 提供了一种允许对象通过应用程序域与另一对象进行交互的框架。这也正是我们使用Remoting的原因。为什么呢?在Windows操作系统中,是将应用程序分离为单独的进程。这个进程形成了应用程序代码和数据周围的一道边界。如果不采用进程间通信(RPC)机制,则在一个进程中执行的代码就不能访问另一进程。这是一种操作系统对应用程序的保护机
阅读全文
posted @
2011-08-29 16:00
SplendidMe
阅读(167)
推荐(0)
C#数据同步中基本步骤和用到的相关函数
摘要:数据同步对比步骤:1.将两数据库中对应的数据表分别生成XML文件 /// <summary> /// 将一个DataTable以xml方式存入指定的文件中 /// </summary> /// <param name="dt"></param> /// <param name="filePath"></param> public void SaveDataTableToXml(DataTable dt, string filePath) { //创建文件夹 if (!Director
阅读全文
posted @
2011-08-25 14:23
SplendidMe
阅读(1099)
推荐(1)