OSGI(三)加载Bundle之Manifest.xml

本文详细解析了OSGI中的Manifest.xml文件,包括其作为模块清单文件的角色,主要节点如基本信息、激活器信息、运行时描述、服务信息和扩展信息。重点讲述了<Bundle>、<Runtime>和<ExtensionPoint>节点的功能,并指出Manifest文件对于插件加载的重要性。了解这些内容将有助于理解OSGI.NET体系结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

        如果大家下载过插件,一定注意到了这个文件: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体系结构。

      不足之处,敬请指正!

评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值