概述

反射就是动态发现类型信息的能力。它帮助程序设计人员在程序运行时利用一些信息去动态地使用类型,这些信息在设计时是未知的,这种能力类型于后期绑定。反射还支持的更高级的行为,能在运行时动态创建新类型,并且对这些新类型的操作进行调用。

 

一些在反射中经常使用的类

Assembly

Assembly类是可重用、无版本冲突并且可自我描述的公共语言运行库应用程序构造块。可以使用Assembly.LoadAssembly.LoadFrom方法动态地加载程序集。

 

Type

反射的中心是System.Type类。System.Type类是一个抽象类,代表公用类型系统中的一种类型。这个类使您能够查询类型名、类型中包含的模块和名称空间、以及该类型是一个数值类型还是一个引用类型。

System.Type类使您能够查询几乎所有与类型相关的属性,包括类型访问限定符、类型是否、类型的COM属性等等。

 

Activator

Activator类支持动态创建.NET程序集和COM对象。可以通过CreateComInstanceFromCreateInstanceCreateInstanceFromGetObject四个静态方法加载COM对象或者程序集,并能创建指定类型的实例。

 

Binder

Binder类是一个用于执行类型转换的绑定器,Type对象的InvokeMember方法接受Binder对象,这个对象描述了如何将传递给InvokeMember的参数转换成方法实际需要的类型。

Binder类是一个抽象类,要创建绑定器,需要重写方法BindToMethodBindToFieldSelectMehtodSelectPropertyChangeType

 

DefaultMemberAttribute

    DefaultMemberAttribute类用于类型并带有一个指明默认成员名称的字符串参数。能够通过InvokeMember调用默认成员,而不需要传递调用成员的名称。当需要绑定器但不需要特别的绑定行为时就可以使用它。

 

其它

还有一些对元素类型信息描述的类,ConstrutorInfo(构造函数)、MethodInfo(方法)、FieldInfo(字段)、PropertyInfo(属性)、EventInfo(事件)、MemberInfo(成员)、ParameterInfo(参数)。如果查询得到了具有任何类型信息的实例,就可以获得该类型中任意元素的类型信息,当然出于安全原因,不保证会得到程序集中的任何信息。
 

示例

 

类定义:

 

.net反射简介using System;
.net反射简介
using System.Collections.Generic;
.net反射简介
using System.Text;
.net反射简介
.net反射简介
namespace ReflectionSample
}

反射示例
.net反射简介using System;
.net反射简介
using System.Data;
.net反射简介
using System.Configuration;
.net反射简介
using System.Web;
.net反射简介
using System.Web.Security;
.net反射简介
using System.Web.UI;
.net反射简介
using System.Web.UI.WebControls;
.net反射简介
using System.Web.UI.WebControls.WebParts;
.net反射简介
using System.Web.UI.HtmlControls;
.net反射简介
.net反射简介
using System.Reflection;
.net反射简介
using ReflectionSample;
.net反射简介
}

相关文章:

  • 2022-12-23
  • 2021-07-31
  • 2021-06-09
  • 2021-12-06
  • 2021-12-31
  • 2021-12-01
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-09-01
  • 2022-12-23
  • 2021-08-17
  • 2021-11-20
相关资源
相似解决方案