摘要:
1.创建对象的方式 作为入门的第一篇,先从最简单的创建对象开始吧。 首先,回顾一下,在c#中如何创建某个类型的对象,最基础的当然是使用new关键字,例如:new object(),当然这个方式也有缺点,那就是编译时必须明确的知道类型(也就是这里的object)。 如果编译时不知道类型,... 阅读全文
摘要:
新年问候 大家新年好,在新的一年中,本Blog的重点将转向IL系列,所以这里先写一篇前言,明确各个目标。 基础知识 IL之旅的难度将会比较高,当然包含入门的部分,不过,前提是读者已经相当了解c#和反射的使用,所以在系列中不会说那些基础的反射,和如何反射等基础知识。 目标 学习IL的... 阅读全文
摘要:
虎年将至,大家工资涨了吧 先说说本Blog明年的计划,明年将暂时减少(或暂停)Xml系列的文章,开始新的IL之旅,当然会从入门开始。 IL之旅系列的期望的目标受众是对c#有相当理解的,至少对反射比较熟悉,并且对元数据编程非常喜欢的人(本人也是元数据编程的死党),当然如果还没用弄明白装箱和拆箱的话,这个系列就有点难了,当然有个过渡方案,就是Emit时只使用引用类型。 最后,祝大家新春快乐! 阅读全文
摘要:
前言 呃,已经是第八篇了,怎么感觉Xml还有好多东西没讲。。。还是先挑比较重要的东西讲一下吧,今天的主角是.net的Xml序列化。 在主角出现前,先回想一下,平时什么地方用了Xml序列化吧: 第一个想到的当然是Web Service和更进一步的WCF,没有Xml序列化的话,就需要手动处... 阅读全文
摘要:
前言 上集介绍了使用XmlWriter如何写一个大型的xml,不难发现XmlWriter使用起来略比Linq to Xml麻烦一些,不过优势却是基本不消耗内存。不过XmlWriter的功能仅仅是写Xml,要读取Xml则需要依靠XmlReader,这就是今天的主角。 准备工作 首先,来准备一个大型的xml:static v... 阅读全文
摘要:
前言 最近工作比较忙,都没空写Blog,一拖就拖了一个月。废话就不说了,回顾一下上集,讲到了如何用Linq写一个超大的Xml,而不至于内存溢出,但是用Linq始终有一个限制,那就是必须要安装.net Framework 3.5,如果部署环境上没有安装3.5的,那如何是好啊? 设置目标 不妨把目标设置得与前一篇相同,也是把某目录下的所有文件和目录输出到一个xml里面去,这里就不再重复了。 分... 阅读全文
摘要:
上集回顾 上两集都介绍了Linq to Xml的相关用法,需要注意的一点是Linq to Xml是in-memory的处理方式,所以有多少节点,就要消耗多少内存,如果这个xml很大,但系统内存却有限的情况下怎么办哪? 设置目标 今天要做的是把某目录下的所有文件和目录输出到一个xml里面去,例如:<?xml version="1.0" encoding="gb2312"?><... 阅读全文
摘要:
上集回顾 上集初步介绍了Linq to Xml的基本操作,简单的新建xml操作和简单的查询xml操作。不过,可以注意到的是上集里面的xml都是没有Namespace的xml,那么有Namespace的xml如何操作哪? 设置目标 先看看我们目标,完整这样一个xml:<?xml version="1.0" encod... 阅读全文
摘要:
c#进入了3.0时代,引入了强大的Linq,同时提供了Linq to Xml,这个全新的Xml Api。与Linq to Xml相比,传统的DOM Api就显得笨重而繁杂了。 Linq to Xml的本质 首先,linq to xml是一种in-memory的技术(官方说法是:LINQ to XML provides ... 阅读全文
摘要:
现在ORM已经是一门非常成熟的技术了,相信用的人不少,加上Linq to sql和Entity Framework的推波助澜,现在还用DataSet和DataTable的人已经越来越少了,不过,如果项目里面不用ORM工具,就不得不回归到DataSet时代吗? 也许,我们没法改变项目的决策,但是,我们可以自己制造工具。 ... 阅读全文