我在WPF应用程序中使用Prism,到目前为止,我一直在通过var moduleCatalog = new ConfigurationModuleCatalog();
加载模块。我想从数据库中获取模块目录。 Prism文档表明这是可能的,但它没有涉及任何细节。
有没有人这样做并且可以提供一些指导?
答案 0 :(得分:1)
这是理论上的可能性,但不是我见过的任何样本。
基本上你要做的是base64将DLL /文件编码到数据库中,或者将它们压缩并将它们存储在一个blob中。您可以在引导程序中下载它们并在本地复制它们(在临时目录中),然后允许它们使用DirectoryModuleCatalog从文件系统正常加载。如果你想要它更优雅,你可以编写自己的ModuleCatalog来封装这个逻辑。
这与我的工作非常相似......我实际上是在发布时从网站下载所有模块的zip文件并解压缩并使用DirectoryModuleCatalog加载它们。
答案 1 :(得分:1)
您可以通过实施ModuleCatalog
来编写自己的IModuleCatalog
实施。然后,您的实现可以通过您定义的任何方式填充目录。
您还可以使用接受Stream
的{{3}}并实现通过HTTP在XAML中提供ModuleCatalog的Web服务。