基于.net框架下的插件系统的实现方法

  插件相信大家都知道,它的应用相当广泛。那我们自己在开发应用系统时能否也借鉴插件的一种方法来实现程序版本的升级与某一部分功能模块的更新呢?比如说用户的某些业务更改啦,这时我们就需要对这一更改的业务进行重组,以前一般是把业务逻辑重写并重新编译全部源程序再发布。如果采用插件的方法来实现,我们只需要把新的业务逻辑重新编译发布成DLL文件,利用框架的功能来实现动态加载业务逻辑。

  .net平台中其实实现插件的关键技术点就是动态加载动态链接库(DLL),即Assembly类的应用。这里大致介绍下把新增的模块作为插件的形式发布的实现思路如下:

  一、把新实现或新增的功能模块发布成DLL文件;

  二、通过XML或数据库配置相关信息,包括命名空间、类名、链接库文件名、启动方法名(默认为类名)三个参数;

  三、基础框架程序通过读取的三个参数利用Assembly.LoadFrom(文件名)函数加载动态链接库;

  四、根据类名和启动方法名实例化类、调用启动方法;

下面给出一个简单的实现源代码:

Try { // 载入程序集

Assembly MyAssembly=Assembly.LoadFrom(lpFileName);

Type[] type=MyAssembly.GetTypes();

foreach(Type t in type)

{// 查找要调用的命名空间及类

if(t.Namespace==Namespace&&t.Name==ClassName)

{// 查找要调用的方法并进行调用

MethodInfo m=t.GetMethod(lpProcName);

if(m!=null)

{

object o=Activator.CreateInstance(t);

return m.Invoke(o);

}

else MessageBox.Show(" 装载出错 !");

}

}

}//try

catch(System.NullReferenceException e)

{

MessageBox.Show(e.Message);

}//catch

return (object)0;

}// Invoke

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值