欢迎来到天天文库
浏览记录
ID:36586144
大小:1.42 MB
页数:63页
时间:2019-05-09
《netFramework各版本区别》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Let'sTalkAbout.NET欧美事业部曹盛目录1.反射2.委托3.事件4..net各版本之间的区别4.1.NETFramework1.14.2.NETFramework2.04.3.NETFramework3.04.4.NETFramework3.54.5.NETFramework3.5SP14.6.NETFramework4.0反射反射(Reflection)是.NET中的重要机制,通过放射,可以在运行时获得.NET中每一个类型的成员,包括方法、属性、事件,以及构造函数等。应用程序结构分为应用程
2、序域—程序集—模块—类型—成员几个层次,公共语言运行库加载器管理应用程序域,这种管理包括将每个程序集加载到相应的应用程序域以及控制每个程序集中类型层次结构的内存布局。程序集包含模块,而模块包含类型,类型又包含成员,反射则提供了封装程序集、模块和类型的对象。反射获取和加载程序集System.Reflection.Assembly使用反射来获取程序集常用的有以下几种方法:获取AppDomain中包含的所有程序集调用AppDomain类的属性currentDomain的GetAssemblies方法将返回一个由
3、System.Reflection.Assembly元素组成的数组,示例如下:foreach(AssemblyasseminAppdomain.currentDomain.GetAssemblies()){…}加载单个程序集,System.Reflecton.Assembly类型为加载一个程序集,提供了以下方法:Load方法:例如:AssemblyaAssembly=System.Reflecton.Assembly.Load("PetShop.SQLServerDAL");LoadFrom方法:例如:A
4、ssemblya=System.Reflecton.Assembly.LoadFrom("ReflectSample.exe");反射获取类型System.Type使用反射来获取类型常用的有以下几种方法:使用typeof运算符获取类型的System.Type对象,如:System.Typetype=typeof(int);System.Typetype=typeof(HelloWorld);//HelloWorld是自定义的类名通过类型实例,使用方法GetType获取类型的System.Type对象,如:
5、intintA=10;System.Typetype=intA.GetType();获取程序集所包含的所有类型使用程序集实例的GetTypes方法可以获取程序集所包含的所有类型,如:Assemblya=Assembly.LoadFrom("ReflectSample.exe");Type[]mytypes=a.GetTypes();//从程序集获取所有数据类型反射创建类型的成员以下介绍几个用于类型成员的类:ConstructorInfo类用于类型的构造函数,使用ConstructorInfo可以获取以下信
6、息:构造函数的名称、参数、访问修饰符和实现详细信息等。使用Type的GetConstructors或GetConstructor方法来创建特定的构造函数ConstructorInfo对象。ConstructorInfo[]p=typeof(t).GetConstructors();for(inti=0;i
7、、访问修饰符和实现详细信息等。使用Type的GetMethods或GetMethod方法来获取MethodInfo对象。反射创建类型的成员使用FieldInfo获取以下信息:字段的名称、访问修饰符和实现详细信息等;并获取或设置字段值。使用Type的GetField等方法来获取FieldInfo对象。使用EventInfo获取以下信息:事件的名称、事件处理程序数据类型、自定义属性、声明类型和反射类型等;并添加或移除事件处理程序。使用Type的GetEvent等方法来获取EventInfo对象。使用Prope
8、rtyInfo获取以下信息:属性的名称、数据类型、声明类型、反射类型和只读或可写状态等;并获取或设置属性值。使用Type的GetProperty等方法来获取PropertyInfo对象。反射创建类型的实例通过反射创建类型的实例常用的有以下几种方法:使用System.Activator的CreateInstance方法创建类型的实例。例如:Objectobj=Activator.CreateInstance(type);//ty
此文档下载收益归作者所有