反射技术
来源:互联网 发布:开淘宝店手机怎么认证 编辑:程序博客网 时间:2024/05/16 09:04
我们可以使用反射来执行以下任务:
获取程序集中有关公共类型及其公共成员的信息。
了解代码所在的模块和程序集。
调用程序集中类型对象公共属性和方法。
使用反射操作某个程序集中的类型,基本上分两步走,首先要加载要反射的程序集,然后通过Type类的方法对程序集中类型进行枚举或调用。因为对非公共信息的访问将带来危险
,所以.NET反射机制在默认情况下只能对程序集中的公共的类型的信息或成员进行反射。
加载程序集使用System.Reflection命名空间的Assembly类的Load方法或LoadFrom方法:
Assembly.Load(String assembyName)
Assembly.LoadFrom(String assemblyPath)
程序集加载以后我们就可以通过Assembly类的GetType和GetTypes方法来获得加载程序集的类型。
public Type GetType(string name)
public Type[] GetTypes()
有关Type类的常用方法
GetMethod或GetMethods 返回MethodInfo
GetField或GetFields 返回FieldInfo
GetEvent或GetEvents 返回EventInfo
GetPropertie或GetProperties 返回PropertyInfo
GetConstructor或GetConstructors 返回ConstructorInfo
代码示例
class Program{
static void Main(string[] args){
Assembly ass = Assembly.LoadFrom(@"E:\Test\ClassLibraryMath.dll");
Type t= ass.GetType("ClassLibraryMath.Maths");
object obj = Activator.CreateInstance(t);
MethodInfo m = t.getMethod("Add");
object r = m.Invoke(obj,new object[]{1,2});
console.Write(r);
}
}
- 反射技术
- 反射技术
- 反射技术
- 反射技术
- 反射技术
- 反射技术
- 反射技术
- 反射技术
- 反射技术
- 反射技术
- 反射技术
- 反射技术
- 反射技术
- C++ 的“反射”技术
- .net反射技术
- 反射技术示例
- 初识.net反射技术
- 反射技术示例
- delphi 太简单了
- LNK2005 *** 已经在 *** lib中定义
- 解决png24格式图片在ie6中透明问题,
- qt QSettings
- 程序人生--2007年(37)
- 反射技术
- EA与Rose UML建模工具比较
- 另一种分数写法
- 6-1.2 改错
- 关于php的 header("Cache-control: private");用法~
- 改错
- 基于MCP2515的Linux CAN总线驱动程序设计(三)
- feof()和EOF的用法—— C中文件结尾的判断
- Linux多线程编程小结