2013年10月11日

C# 反射技术应用

摘要: 反射(Reflection)是.NET中的重要机制,通过放射,可以在运行时获得.NET中每一个类型(包括类、结构、委托、接口和枚举等)的成员,包括方法、属性、事件,以及构造函数等。还可以获得每个成员的名称、限定符和参数等。有了反射,即可对每一个类型了如指掌。如果获得了构造函数的信息,即可直接创建对象,即使这个对象的类型在编译时还不知道。 1、.NET可执行应用程序结构 程序代码在编译后生成可执行的应用,我们首先要了解这种可执行应用程序的结构。 应用程序结构分为应用程序域—程序集—模块—类型—成员几个层次,公共语言运行库加载器管理应用程序域,这种管理包括将每个程序集加载到相应的应用程序域以... 阅读全文

posted @ 2013-10-11 11:08 itjeff 阅读(438) 评论(0) 推荐(0)

C#反射机制介绍

摘要: 反射的定义:审查元数据并收集关于它的类型信息的能力。元数据(编译以后的最基本数据单元)就是一大堆的表,当编译程序集或者模块时,编译器会创建一个类定义表,一个字段定义表,和一个方法定义表等。 System.reflection命名空间包含的几个类,允许你反射(解析)这些元数据表的代码System.Reflection.AssemblySystem.Reflection.MemberInfoSystem.Reflection.EventInfoSystem.Reflection.FieldInfoSystem.Reflection.MethodBaseSystem.Reflection.Const 阅读全文

posted @ 2013-10-11 11:01 itjeff 阅读(702) 评论(0) 推荐(0)

C#反射浅析

摘要: 首先了解C#反射的概念,反射是一个运行库类型发现的过程。通过反射可以得到一个给定程序集所包含的所有类型的列表, 这个列表包括给定类型中定义的方法、字段、属性和事件。也可以动态的发现一组给定类支持的借口、方法的参数和其他 相关信息如基类、命名空间、数据清单等。 C#反射命名空间详细介绍: 1.System.Reflection命名空间内的各类型 (1) Assembly通过它可以加载、了解和操纵一个程序集 (2) AssemblyName 通过它可以找到大量隐藏在程序集的身份中的信息,如版本信息、区域信息等 (3) EventInfo 事件的信息 (4) FieldInfo 字段... 阅读全文

posted @ 2013-10-11 10:22 itjeff 阅读(327) 评论(0) 推荐(0)

2013年10月10日

Delegate,Action,Func,Predicate的使用与区别

摘要: C#4.0推出后,类似Linq,Lamda表达式等许多新的程序写法层次不穷。与之相关的Delegate,Action,Func,Predicate的使用和区别也常常让大家迷惑,此处就结合实际的应用,对其进行详细的说明。在书写代码时,常常会用到委托,这个在winform下较常见,但自定义Delegate时,我们常常发现Delegate必须全局可见,才能在需要的地方进行使用,而对于私有的delegate对象,在本类中进行使用,这似乎是不方便的。下边我们来看传统的Delegate的写法。public delegate void MyDelegate(string name); public clas 阅读全文

posted @ 2013-10-10 16:11 itjeff 阅读(383) 评论(0) 推荐(0)

2013年10月9日

IEnumerable,IQueryable的区别

摘要: IEnumerable,IQueryable之前世今生 IEnumerable在.Net2.0中我们已经很熟悉了.你想要利用Foreach迭代吗?实现IEnumerable吧!你想直接做为数据源绑定到控件吗?使用IEnumerable吧!是的.只要是序列.它都实现了IEnumerable(.Net1.0下的序列类除外).除了这些.LINQ的出现.还赋予了IEnumerable更强悍的功能.IQueryable继承IEnumerable.详细看IEnumerable和IQueryable这两个API的签名.可以说非常相似.从某种意义上来说.它们是可以 互换的.但是却不总是可以互相代替的.IEnu 阅读全文

posted @ 2013-10-09 17:55 itjeff 阅读(403) 评论(0) 推荐(1)

Linq入门演练---(2)lambda表达式

摘要: 今天大家一同学习下lambda表达式, lambda表达式使用起来更方便, lambda表达式其实是一个匿名函数,使用的运算符为=> 语法: (参数)=》表达式 如果只有一个参数,可以不使用括号,多个参数用逗号隔开. (x,y)=>x==y 如果没有参数,使用空括号表示 ()=>表达式 1.where()方法 代码:[csharp] view plaincopyprint?privatevoid button1_Click(object sender, EventArgs e) { //查询大于10的元素 string str = ""; int[] ar 阅读全文

posted @ 2013-10-09 17:00 itjeff 阅读(324) 评论(0) 推荐(0)

Linq入门演练---(1)基本用法-分组,排序,内连接

摘要: 这一节大家共同学习下LINQ的基本用法,主要包括LINQ的分组,排序,和内外连接。 1.分组 基本语法: group element by key element 表示查询结果返回的元素,key表示分组条件。group子句返回的类型为IGrouping的查询结果。 IGrouping可以看成一个hashtable内部嵌套一个list列表的数据结果. 其中TElement就是一个list 我们看下面的一个事例,下面这个实例演示根据性别对用户进行分组 代码[csharp] view plaincopyprint?publicclass User { public User(string use.. 阅读全文

posted @ 2013-10-09 16:47 itjeff 阅读(571) 评论(0) 推荐(0)

Asp.Net MVC 2.0 Filter基本用法

摘要: 在这一节里,大家一同学习下mvc 2.0中的filter,简单的说,filter就是标记在action上的一些属性,来实现对action的控制。 mvc2.0中主要包括以下filter 1. Authorize 2.HandleError 3.RequireHttps 4.OutputCache 1. 首先说下Authorize Authorize主要用来实现用户的授权与访问。 [csharp] view plaincopyprint?[Authorize(Roles="Admins",Users="zx")] public ActionResult D 阅读全文

posted @ 2013-10-09 16:22 itjeff 阅读(386) 评论(0) 推荐(0)

ASP.NET MVC2.0 自定义filters

摘要: 今天大家共同学习下ASP.NET MVC2.0中自定义filters,这一节主要学习下ActionFilterAttribute, ActionFilterAttribute继承IActionFilter, IResultFilter接口,并且继承FilterAttribute类. ActionFilterAttribute可以监控action执行过程中所有阶段,包括日志,异常处理等功能. 主要包括以下四个重载方法 OnActionExecuting,OnActionExecuted,OnResultExecuting,OnResultExecuted 1.OnActionExecuting. 阅读全文

posted @ 2013-10-09 16:13 itjeff 阅读(389) 评论(0) 推荐(0)

2013年9月27日

IE打印的参数配置说明

摘要: IE自动给我们在页眉和页脚处加上了这些不必要的打印信息。如果我们不想要任何页眉和页脚的话,直接删除它们就行了。:-)大部分时候我都是这样做的。但如果你想自定义页眉和页脚的时候,该怎么做呢?上面的那些“&w&b&p”等等究竟表示什么意思呀?给你个表格就知道了。符号含义&w网页标题&u网页地址 (URL)&d短日期格式(由“控制面板”中的“区域设置”指定)&D长日期格式(由“控制面板”中的“区域设置”指定)&t由“控制面板”中的“区域设置”指定的时间格式&T24 小时时间格式&p当前页码&P总页数&b文 阅读全文

posted @ 2013-09-27 15:47 itjeff 阅读(558) 评论(0) 推荐(0)

导航