基于组件的.NET软件开发(3)
动态组件插拔
在实现动态组件插拔之前,我们必须了解一个概念:反射(Reflection)。
所谓反射,就是仅依据名字来创建一个对象。
举个例子,在上面的例子中,我可以直接给定一个字串:“ CSharpClassNameSpace.CSharpRect”,然后我就可以生成这个对象,并调用它的Area()方法求面积!其前提条件是程序能访问存放这些类的DLL文件。
好了,现在可以说说我们的构想了:
我们把某个程序要用到的DLL和其中的类名放在一个配置文件中,程序启动时读取这个文件,就可以自动地加载外部指定的DLL,实现程序的组件动态装配。当我需要更换程序中的某个组件时,我只需要将新DLL复制到程序文件夹之下,系统就马上可以使用新的组件,而不用重新编译或修改组件调用者原有的任何代码!
现在看看我们的示例是怎么样的!
我们创建两个VB类库,每个类库都封装了一个窗体。VBDynamicComponent组件中封装了以下窗体:
图 6 组件一
VBDynamicComponent2组件中封装了以下窗体:
图 7 组件二
主程序是一个Windows应用程序,它可以动态创建两个组件中的任何一个窗体对象,并显示它们:
图 8 示例程序主窗体
主程序在启动时会读取一个系统配置清单,是XML格式的,如下所示:
<?xml version="1.0" encoding="GB2312" ?>
<Config>
<Component ComponentName=" DynamicComponent.VBForm1" ComponentFileName="DynamicComponent.dll" />
<Component ComponentName="VBDynamicComponent2.VBForm2" ComponentFileName="VBDynamicComponent2.dll" />
</Config>
主程序根据清单装入指定的组件DLL文件,并依据ComponentName属性值创建对象,排列在第一位的组件窗体被自动显示。
大家看一看,这样一个系统组件装配清单,象不象一个厨师准备大餐时的原料清单?现在就开始制作我们的“满汉全席”吧!
基于组件的.NET软件开发(3)相关推荐
- 基于组件的.NET软件开发(1)
基于组件的.NET软件开发 前言 随着软件技术的飞速进步,现代的大型软件都广泛采用了基于软件组件的开发方式.以成熟的CBD(Component Based Design:基于组件的系统设计)理论为指导 ...
- 基于Andro平台的软件开发若干关键技术研究(笔记)
基于Android平台的软件开发若干个关键技术研究 摘要:随着移动智能终端的飞速发展和广泛普及,移动GIS应用正迅速迅速成长,并且成为最有发展前景的热点之一.作为移动GIS应用的分支,基于Androi ...
- ubuntu14.04如何在线安装eclipse以及C/C++开发组件,搭建软件开发平台
在ubuntu14.04操作系统中进行C/C++软件开发,需要安装eclipse以及CDT等各种组件,下载安装包一一安装,之后再进行各种配置可能比较麻烦,在这里推荐一种在线安装方式,安装配置较为方便. ...
- 基于Qt的待办软件开发
大一的时候,由于各种作业.事情太多,笔者迫切希望找一个好用的待办软件,但是一直没有找到合适的.于是一冲动,索性决定自己给自己写一个. 之后这一年多,笔者不想玩游戏了就会写一写这个项目,如今算是达成了阶 ...
- 基于QT框架的软件开发
QT入门科普 初识QT 更新到QT6: QT的许可类型 QT与C++ QT美与丑 技术选型偏重 未来发展趋势 个人发展路线 初识QT Qt 是一个1991年由Qt Company开发的跨平台C++图形 ...
- 基于QML的 客户端软件开发流程
一,背景 Qt Quick 作为Qt公司对移动端的一种尝试,无疑是失败的.生态的缺失,支持的不利,基本上看不到移动端有人用这套东西来开发应用,但是这套技术本身是不错的,快速的开发效率,gpu式的渲染方 ...
- 基于Android平台im软件开发,基于Android平台IM软件多媒体数据传输保护
Protection for Instant Messanger Media data Transmission Based-on Android WU Weina 1 吴维娜(1992- ),女,北 ...
- 大型CAx(CAD/CAE/CAM)工业软件开发中的关键组件
通过对FreeCAD.SALOME等多款代码的分析研究,发现这些软件在架构设计.模块实现等方面,存在许多相似(同)的技术思想.因此,有必要对这些共性.主流的技术予以总结分析. Structuring ...
- 基于AUTOSAR规范的电机控制器软件开发
基于AUTOSAR规范的电机控制器软件开发 本系列文章主要介绍如何开发符合AUTOSAR规范的电机控制器软件的详细过程. 全系类分为基础篇和实战篇:基础篇内简要介绍最新的AUTOSAR规范,嵌入式软件 ...
最新文章
- linux c 内存共享
- Redis数据库(一)——介绍、配置与优化
- 初探Golang(3)-数据类型
- HTTP协议中你必须知道的三种数据格式
- tensorflow:图(Graph)的核心数据结构与通用函数(Utility function)
- 骆天涯:gunicorn部署Flask服务
- 3个好用的3D点云数据标注工具推荐
- Python技巧:双击python文件打开.py(博主自测完整版)
- 你一定要狠狠的幸福,那个凶丫头(2)
- 土方回填施工方案范本_联投土方回填施工方案样本
- 基本农田卫星地图查询_谷歌地图打不开?试试这个替代网站,街景功能很好用!...
- ORA-20001: Latest xml inventory is not loaded into table
- CAPM模型通俗透彻理解(资本资产定价模型)
- 微信保存图片查看与清理工具
- TensorFlow学习笔记(二)把数字标签转化成onehot标签
- Docker容器引擎
- css3如何实现动画效果
- 对 捕鱼达人1.01 的全程破解分析
- 《老梁四大名著情商课》笔记- 别慌,情商是可以提升的
- 计算机基础教程张福炎pdf,计算机基础教学大纲(理科).pdf