.Net动态加载插件-反射
来源:互联网 发布:爆肚涮羊肉 知乎 编辑:程序博客网 时间:2024/05/22 13:12
/// <summary> /// 动态加载插件 /// </summary> void LoadPlugin() { string[] ps = Directory.GetFiles("Plugins"); IXCodePlugin ixp; //获取插件接口的Type对象 Type tixp = typeof(IXCodePlugin); foreach (string item in ps) { //加载某个程序集文件,得到Assembly对象 Assembly asm = Assembly.LoadFile(Path.GetFullPath(item)); //获取程序集中的所有公共类型 Type[] ts = asm.GetTypes(); foreach (Type t in ts) { //判断程序集是否实现了IXCodePlugin接口 if (tixp.IsAssignableFrom(t)) { //将实现了接口的类型完成实例化,以方便调用 ixp = (IXCodePlugin)Activator.CreateInstance(t); string type = ixp.Type().ToLower(); } } } }
总共分一下几步:
1.遍历存放插件的文件夹,
2.获取插件接口的Type对象,
3.获取程序集中的所有公共类型
4.判断是否实现了,插件的接口
5.实例化实现了插件接口的类得到对象
6.调用插件中的方法
0 0
- .Net动态加载插件-反射
- vb.net 2005 动态加载菜单及反射+权限
- 使用反射动态加载
- (C#)利用反射动态调用类成员、动态加载控件以及插件编程思想
- (C#)利用反射动态调用类成员、动态加载控件以及插件编程思想
- .NET: 如何通过AppDomain动态加载插件程序
- 动态加载插件
- Android插件-动态加载
- jquery 动态加载插件
- 【插件动态加载方案】
- Android-动态加载插件化的两种实现方式(一):反射
- C#反射、动态加载类
- C# 反射动态加载窗口
- C#反射、动态加载类 .
- 反射和动态加载bean
- 反射之动态加载类
- 通过反射动态加载DLL
- java反射:动态加载类
- iBatis 到 MyBatis区别
- 基于visual Studio2013解决面试题之0203栈实现
- Generics Tutorial – Example Class, Interface, Methods, Wildcards and much more
- [工具] XMind
- 基于visual Studio2013解决面试题之0204最大子集数组
- .Net动态加载插件-反射
- centos6.5 64bit 安装 vsftp 的曲折道路
- 从Windows转向Linux教程 1
- 从Windows转向Linux教程 2
- disruptor
- 编译powerdebug源码
- SQL语言参考大全
- 基于visual Studio2013解决面试题之0205查找路径
- Understanding The Linux Kernel 3rd