C#反射简单介绍
2013-02-22 16:07
337 查看
#region 加载指定的程序集,并且获取该程序集中的所有的类型
////1.加载c:\TestLib.dll 程序集
////现在asm就是TestLib.dll程序集
//Assembly asm = Assembly.LoadFile(@"c:\TestLib.dll");
////2.获取asm这个程序集中的所有的类型
////获取所有类型,包含public类型与非public类型
//// Type[] types = asm.GetTypes();
////获取程序集中的所有的public的类型
//Type[] types = asm.GetExportedTypes();//只有public类型才能获取的到。
////循环遍历把每个类型都输出
//foreach (Type typeItem in types)
//{
// Console.WriteLine(typeItem.Name);
//}
//Console.ReadKey();
#endregion
#region 加载程序集,获取Class1下的所有的方法
//1.加载程序集
Assembly asm = Assembly.LoadFile(@"c:\testlib.dll");
//2.获取Class1这个类型
//typeClass1就表示描述Class1类的type,里面存储的就是Class1的一些相关信息.就可以理解成是Class1的元数据
Type typeClass1 = asm.GetType("TestLib.Class1");
#region 获取当前类型中的所有的非protected非private方法。
////3.获取Class1中的所有的方法
//MethodInfo[] minfos = typeClass1.GetMethods();
////4.遍历每个方法,把每个方法的名称打印出来。
//foreach (MethodInfo methodItem in minfos)
//{
// Console.WriteLine(methodItem.Name);
//}
//Console.ReadKey();
#endregion
#region 获取SayHi方法
MethodInfo method = typeClass1.GetMethod("SayHi");
//输出该方法名
Console.WriteLine(method.Name);
//创建一个Class1类型的对象
object obj=Activator.CreateInstance(typeClass1);
//调用该方法
method.Invoke(obj, null);//由于SayHi方法没有参数,所以第二个参数传递一个null
Console.ReadKey();
#endregion
#endregion
////1.加载c:\TestLib.dll 程序集
////现在asm就是TestLib.dll程序集
//Assembly asm = Assembly.LoadFile(@"c:\TestLib.dll");
////2.获取asm这个程序集中的所有的类型
////获取所有类型,包含public类型与非public类型
//// Type[] types = asm.GetTypes();
////获取程序集中的所有的public的类型
//Type[] types = asm.GetExportedTypes();//只有public类型才能获取的到。
////循环遍历把每个类型都输出
//foreach (Type typeItem in types)
//{
// Console.WriteLine(typeItem.Name);
//}
//Console.ReadKey();
#endregion
#region 加载程序集,获取Class1下的所有的方法
//1.加载程序集
Assembly asm = Assembly.LoadFile(@"c:\testlib.dll");
//2.获取Class1这个类型
//typeClass1就表示描述Class1类的type,里面存储的就是Class1的一些相关信息.就可以理解成是Class1的元数据
Type typeClass1 = asm.GetType("TestLib.Class1");
#region 获取当前类型中的所有的非protected非private方法。
////3.获取Class1中的所有的方法
//MethodInfo[] minfos = typeClass1.GetMethods();
////4.遍历每个方法,把每个方法的名称打印出来。
//foreach (MethodInfo methodItem in minfos)
//{
// Console.WriteLine(methodItem.Name);
//}
//Console.ReadKey();
#endregion
#region 获取SayHi方法
MethodInfo method = typeClass1.GetMethod("SayHi");
//输出该方法名
Console.WriteLine(method.Name);
//创建一个Class1类型的对象
object obj=Activator.CreateInstance(typeClass1);
//调用该方法
method.Invoke(obj, null);//由于SayHi方法没有参数,所以第二个参数传递一个null
Console.ReadKey();
#endregion
#endregion
相关文章推荐
- C# 简单的反射机制实例
- C#反射之Assembly.Load,Assembly.LoadFile 与 Assembly.LoadFrom方法介绍
- C#开发之反射的简单使用
- C#反射技术的简单操作(读取和设置类的属性)
- C#通过反射调用泛型参数方法介绍
- C#关于控件随窗体的改变而自动调整大小并且能重新定位的一些简单介绍和控件随窗体改变自适应类
- C#串口介绍以及简单串口通信程序设计实现
- C#反射之一(Assembly.Load方法介绍)
- C#反射之Assembly.Load,Assembly.LoadFile 与 Assembly.LoadFrom方法介绍
- C#反射之Assembly.Load,Assembly.LoadFile 与 Assembly.LoadFrom方法介绍
- C#反射简单例子
- C#规范简单介绍
- C#反射之Assembly.Load,Assembly.LoadFile 与 Assembly.LoadFrom方法介绍
- C#反射之Assembly.Load,Assembly.LoadFile 与 Assembly.LoadFrom方法介绍
- c#学习 10/22 字符串的各种方法与继承的简单介绍
- c#的简单介绍
- C#反射中Assembly.Load及Assembly.Load.CreateInstance方法介绍
- C#中return语句使用简单介绍