如何从Prism中的数据库加载模块目录?

时间:2010-03-19 15:29:49

标签: wpf prism

我在WPF应用程序中使用Prism,到目前为止,我一直在通过var moduleCatalog = new ConfigurationModuleCatalog();加载模块。我想从数据库中获取模块目录。 Prism文档表明这是可能的,但它没有涉及任何细节。

有没有人这样做并且可以提供一些指导?

2 个答案:

答案 0 :(得分:1)

这是理论上的可能性,但不是我见过的任何样本。

基本上你要做的是base64将DLL /文件编码到数据库中,或者将它们压缩并将它们存储在一个blob中。您可以在引导程序中下载它们并在本地复制它们(在临时目录中),然后允许它们使用DirectoryModuleCatalog从文件系统正常加载。如果你想要它更优雅,你可以编写自己的ModuleCatalog来封装这个逻辑。

这与我的工作非常相似......我实际上是在发布时从网站下载所有模块的zip文件并解压缩并使用DirectoryModuleCatalog加载它们。

答案 1 :(得分:1)

您可以通过实施ModuleCatalog来编写自己的IModuleCatalog实施。然后,您的实现可以通过您定义的任何方式填充目录。

您还可以使用接受Stream的{​​{3}}并实现通过HTTP在XAML中提供ModuleCatalog的Web服务。