插件式程序开发及其应用(C#) - 1

本文介绍了如何使用C#实现插件式程序开发,特别是动态加载控件和组件的方法。通过Assembly.LoadFrom加载DLL,利用Type.InvokeMember调用构造函数创建对象,实现了动态加载和运行代码的功能。此外,还探讨了插件架构的基本思路,包括登录验证、主程序与插件间的交互,以及权限管理和通讯机制。文章后续部分将深入讨论插件架构的实现细节。
摘要由CSDN通过智能技术生成

起因:欲开发一报表系统,能动态加载报表程序

该系统基于插件式架构,即除了登录程序和主程序外,其它所有功能均通过后期加载的方式调用,每个组件实现一个特定的报表(或其它功能)        
基本思路:        
1)登录程序        
 判断用户身份,并根据参数判断能否进入系统,验证通过后返回所有用户资料(权限、基本信息)       
 参数:子系统代码       
 权限信息:可用功能列表       
 基本信息:个人信息、科室信息       
2)主画面        
 获取上述信息并存于全局对象中       
 主画面可以实现基本功能,如修改密码、日志查询等       
 主画面实现插件加载功能,并把用户信息传入组件       
 主画面在加载插件之前需进行有效性验证,即判断用户权限、判断各个接口方法是否有效       
 主画面实现插件间通讯功能,允许各个组件通过把数据共享       
3)插件        
 提供有效性验证功能,提供权限要求       
 能获取主画面传入的用户信息,并存入特定对象中       
 插件间通讯功能       
        
        
一、动态加载控件         
动态加载,最基本用到的就是反射机制。在System.Reflection的namespace下有一系列的关于获取Assembly信息、类(型)信息的类、接口、结构等:         
        
//加载控件         
Assembly assembly = Assembly.LoadFrom(@"C:/C

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值