加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

OSGI(三)加载Bundle之Manifest.xml

发布时间:2020-12-15 23:05:16 所属栏目:百科 来源:网络整理
导读:上篇博客中,我们介绍了如何制作插件,那么插件为什么可以显示在界面菜单呢?通过何种方法显示? 如果大家下载过插件,一定注意到了这个文件: Manifest.xml ;打开它可以看到如下: 那么这个文件是什么?包含什么?如何写?下面我们一一解释: 首先, Manif

上篇博客中,我们介绍了如何制作插件,那么插件为什么可以显示在界面菜单呢?通过何种方法显示?

如果大家下载过插件,一定注意到了这个文件:Manifest.xml;打开它可以看到如下:


那么这个文件是什么?包含什么?如何写?下面我们一一解释:

首先,Manifest.xml文件属于模块层文件,在OSGI里称作模块清单文件;包含以下节点:

  • 基本信息——<Bundle>XML节点
  • 激活器信息——<Activator>XML节点
  • 运行时描述——<Runtime>XML节点
  • 服务信息——<Services>XML节点
  • 扩展信息——<ExtensionPoint><Extension>XML节点
  • 详细信息——<BundleInfo>XML节点

< Bundle>xml节点:NameBundle的名称;SymbolicName标记名称;InitializeState初始化状态;一般NameSymbolicName是需要修改的;

<Runtime>——运行时描述,配置模块本地程序集,模块依赖的程序集;<Assembly Path>XML配置节点声明本地程序集;

<Dependency >XML配置节点声明依赖,包括:依赖其它模块的程序集,依赖其它模块(所有程序集);

<ExtensionPoint>XML节点:拓展信息;<Application>节点里面是对显示名称、底层类的一些设置。

定义可扩展点,动态实现了扩展:

  • 使用XML Schema定义了扩展信息的格式
  • 使用IBundleContext的GetExtensionPoints、GetExtensions等方法获取扩展信息
  • 使用IBundleContext.ExtensionChanged事件监听是否有模块对其进行扩展
  • 模块在启动时添加扩展,停止时卸载扩展

其实Manifest文件,类似于插件目录,程序调用的时候通过Manifest读取信息,才能调用插件;Manifest存的是插件可配置修改的信息,需要Manifest文件写正确,因为程序读每个插件的时读的是Manifest文件中配置的信息,通过Manifest文件才能加载正确的插件。

现在,插件如何做如何使用通过小例子差不多都可以了,下篇博客会介绍OSGI.NET体系结构。

不足之处,敬请指正!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读