参考文章:http://blog.csdn.net/educast/article/details/2894892

上面的文章将C#反射要用到的方法都给出了,下面我将写个例子,帮助理解

【1.使用反射读取程序集】

namespace Ref
{
class Program
{
static void Main(string[] args)
{
//读取程序集
Assembly ass = Assembly.Load("Ref");
//获取Ref程序集中的Program类
Type t = ass.GetType("Ref.Program");
//根据获取到的类创建实例
object o = Activator.CreateInstance(t);
//获取方法
MethodInfo mi = t.GetMethod("Show");
//反射调用自己的方法(需要传递其类,如果是静态方法则不需要传递o,写成null就行)
mi.Invoke(o, null);
} public void Show()
{
Console.WriteLine("显示22");
}
}
}

【2.通过类库DLL文件的反射】

[链接:使用VS制作Dll文件]http://blog.csdn.net/u010026134/article/details/51598499

使用VS的功能,添加新建项目---类库,比如写了以下代码

namespace MyDll
{
public class Class1
{ } public class SayAndSee
{
public string say = "isOk?"; public void MyFun()
{
string see = "isee";
Console.WriteLine("我看见你了");
} public int Cau(int num1, int num2)
{
return num1 + num2;
}
}
}

然后点击生成---生成解决方法,这样我们就可以在DEBUG目录下获取到这个类的Dll文件了,获取其DLL文件路径

接下来就可以去使用了

namespace RefDLL
{
class Program
{
static void Main(string[] args)
{
//读取DLL文件
Assembly assembly = Assembly.LoadFrom(@"C:\Users\zts.FORTUNE\Documents\Visual Studio 2015\Projects\Test3\RefDLL\bin\Debug\MyDll.dll");
//获取MyDll程序集中的SayAndSee类
Type t = assembly.GetType("MyDll.SayAndSee");
//根据获取到的类创建实例
object o = Activator.CreateInstance(t);
//获取方法
MethodInfo mi = t.GetMethod("MyFun");
//反射调用自己的方法(需要传递其类,如果是静态方法则不需要传递o,写成null就行)
mi.Invoke(o, null);
}
}
}

最新文章

  1. EF多对多更新报错(TableNoTracking引发的bug)
  2. Jquery的$(selector).each()和$.each()原理和区别
  3. Linux ext3 ext4 区别
  4. 【JAVA】Calendar
  5. 理解angularjs的作用域
  6. Oracle数据库表设计时的注意事项
  7. UPnP基本原理介绍
  8. 【转】最短路&差分约束题集
  9. MetadataType的使用,MVC的Model层数据验证
  10. js与uri中location关系
  11. hibernate之CRUD操作
  12. 实用 .htaccess 用法大全
  13. IT学习网站
  14. App功能测试
  15. [Swift]LeetCode523. 连续的子数组和 | Continuous Subarray Sum
  16. Linux--虚拟环境
  17. 基于百词斩和扇贝单词的背单词APP软件测试
  18. ubuntu主题收集
  19. Flask之项目创建,路由以及会话控制
  20. 新建 .NET Core 控制台项目

热门文章

  1. Ubuntu下使用UFW,以及CentOS7的默认防火墙firewalld
  2. fiddler-实现https抓包
  3. RobotFramework关键字返回参数
  4. .net core i上 K8S(一)集群搭建
  5. Android下拉刷新完全解析
  6. SCPO2015 小凸玩矩阵
  7. CF455C Civilization | luogu HXY造公园
  8. 201621123012 《Java程序设计》第11周学习总结
  9. python-数值类型转换
  10. jenkins定时