通过Prism模块传递元数据



我正在编写模块化Prism应用程序,它正在从目录加载模块文件(dll文件)。作为开发人员,我不知道该目录中有多少模块,是什么类型的模块等等。

在我的应用程序中,我需要从导入的模块中获取一些元数据,即状态(如果是窗口/面板/窗口元素/实用程序模块)、图标、本地化标题等。

我知道我可以通过在每个模块中创建类似Module.config文件的东西来实现这一点,然后在主应用程序中通过ModuleInfo.Ref路径访问它(向上一级->然后获得Module.config文件路径),但我不想这样做。

我想知道Prism是否有可能通过代码传递元数据(元数据模式的接口?XML字符串?动态对象?)如果不是,我该如何实现它?我应该覆盖哪些类?

谢谢你的建议!

如果您想在加载并初始化模块后将模块中的元数据公开到主应用程序,那么一种简单的方法是在其Initialize方法中添加模块的元数据。例如,您可以让一个共享服务负责存储模块的元数据,每个模块都可以访问它,并在初始化时添加它们的元数据。

如果您想在加载模块之前访问模块的元数据(例如,决定是否要加载哪些模块),Prism不提供任何可以帮助您开箱即用的功能。您可以替换与Prism的交互性API相关的几个类的默认实现,以添加您的自定义功能(您可以在这里阅读更多信息),但对于这种情况,我认为最好实现一个单独的服务来获取模块的元数据,然后将模块的初始化委托给Prism。

相关内容

最新更新