使用Prism模块传递元数据

时间:2014-01-29 14:08:39

标签: wpf prism modularity prism-4

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

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

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

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

感谢您的任何建议!

1 个答案:

答案 0 :(得分:1)

如果要在模块加载和初始化之后将模块中的元数据暴露给主应用程序,那么执行此操作的简单方法是在其Initialize方法中添加模块的元数据。例如,您可以拥有一个共享服务,负责存储模块的元数据,每个模块都可以访问它,并在初始化时添加元数据。

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