正 文

用动态菜单增强.NET应用程序


www.7dspace.com  更新日期:2005-11-28 2:39:25  七度空间


开发一个动态系统

在现实的开发环境中,上述应用程序需要动态提供新菜单代码。为此可以有几个选择。最简单、最容易想到的做法就是通过“对象抽象”来创建MenuItem对象。然后,可随同构建好的程序集中的一个派生对象,动态地加载插件程序集。然后,该对象可用于生成它自己的MenuItem对象,并随即将其加载到菜单中。

采用这种方法,可简化代码与对象的关联,而且可避免使用大量回调函数。由于篇幅所限,本文不准备详细讲述这一过程所涉及的步骤(这些步骤主要和“通用语言运行时反射”以及“程序集动态执行”有关,和动态菜单则没有多大关系)。下面只提供了对这些步骤的一个简要说明:

   1. 定位程序集DLL——在一个目录中查找要添加的新文件,或者要求用户指定目标路径以便加载插件。

   2. 与插件API协商——最容易的做法就是发布一个必须在远程DLL中出现的接口。只要存在从这个接口派生的任何类,就表明是一个合格的插件。

   3. 定位DLL——使用LoadFrom方法,通过.NET Assembly类来动态加载程序集。

   4. 验证插件状态——确保程序集中的一个类支持你定义好的接口。同样能利用反射来实现。

   5. 实例化一个类实例——加载了程序集后,就可用Assembly类的CreateInstance方法在支持你的接口的类中创建对象的一个新实例。

   6. 获取MenuItem——只需在你要求的接口中,规定一个函数必须支持GetMenuItem方法。那个方法允许类返回一个提供了所有功能的MenuItem对象。

   7. 添加MenuItem——使用前面已经展示的代码,就可完成最后一步的操作。

2页,页码:[1] [2] 

上一篇:使用委派来参照函数
下一篇:在组件中使用服务器时钟
作者:周靖 译  来源:开发者在线 ( 责任编辑:7dspace )
收藏此页】【打印】【关闭
站 内 搜 索
 

热 点 导 读
特 别 推 荐